diff options
91 files changed, 6881 insertions, 5799 deletions
@@ -18,6 +18,7 @@ tinymce *.iml lint env +/custom_settings /static django lamson diff --git a/askbot/__init__.py b/askbot/__init__.py index cf850e33..25057b43 100644 --- a/askbot/__init__.py +++ b/askbot/__init__.py @@ -14,6 +14,7 @@ VERSION = (0, 7, 48) REQUIREMENTS = { 'akismet': 'akismet', 'django': 'django>=1.3.1,<1.5', + 'compressor': 'django-compressor==1.2', 'jinja2': 'Jinja2', 'coffin': 'Coffin>=0.3', 'south': 'South>=0.7.1', @@ -33,14 +34,14 @@ REQUIREMENTS = { 'openid': 'python-openid', 'pystache': 'pystache==0.3.1', 'pytz': 'pytz', - 'tinymce': 'django-tinymce', + 'tinymce': 'django-tinymce==1.5.1b2', 'longerusername': 'longerusername', 'bs4': 'beautifulsoup4' } if platform.system() != 'Windows': REQUIREMENTS['lamson'] = 'Lamson' - + #necessary for interoperability of django and coffin try: from askbot import patches diff --git a/askbot/conf/__init__.py b/askbot/conf/__init__.py index fd62bc88..0f92bf99 100644 --- a/askbot/conf/__init__.py +++ b/askbot/conf/__init__.py @@ -8,6 +8,7 @@ import askbot.conf.karma_and_badges_visibility import askbot.conf.email import askbot.conf.forum_data_rules import askbot.conf.moderation +import askbot.conf.question_lists import askbot.conf.flatpages import askbot.conf.site_settings import askbot.conf.license diff --git a/askbot/conf/forum_data_rules.py b/askbot/conf/forum_data_rules.py index e8a2b539..b318e4a2 100644 --- a/askbot/conf/forum_data_rules.py +++ b/askbot/conf/forum_data_rules.py @@ -15,7 +15,7 @@ FORUM_DATA_RULES = livesettings.ConfigurationGroup( EDITOR_CHOICES = ( ('markdown', 'markdown'), - ('tinymce', 'WISYWIG (tinymce)') + ('tinymce', 'WYSIWYG (tinymce)') ) settings.register( @@ -31,6 +31,21 @@ settings.register( settings.register( livesettings.BooleanValue( FORUM_DATA_RULES, + 'ASK_BUTTON_ENABLED', + default=True, + description=_('Enable big Ask button'), + help_text=_( + 'Disabling this button will reduce number of new questions. ' + 'If this button is disabled, the ask button in the search menu ' + 'will still be available.' + ) + ) +) + + +settings.register( + livesettings.BooleanValue( + FORUM_DATA_RULES, 'ENABLE_VIDEO_EMBEDDING', default = False, description = _('Enable embedding videos. '), @@ -354,7 +369,7 @@ settings.register( ) ) -#todo: looks like there is a bug in askbot.deps.livesettings +#todo: looks like there is a bug in askbot.deps.livesettings #that does not allow Integer values with defaults and choices settings.register( livesettings.StringValue( diff --git a/askbot/conf/question_lists.py b/askbot/conf/question_lists.py new file mode 100644 index 00000000..dcf06378 --- /dev/null +++ b/askbot/conf/question_lists.py @@ -0,0 +1,83 @@ +""" +Settings responsible for display of questions lists +""" +from askbot.conf.settings_wrapper import settings +from askbot.conf.super_groups import DATA_AND_FORMATTING +from askbot.deps import livesettings +from django.utils.translation import ugettext_lazy as _ + +QUESTION_LISTS = livesettings.ConfigurationGroup( + 'QUESTION_LISTS', + _('Listings of questions'), + super_group=DATA_AND_FORMATTING + ) + +settings.register( + livesettings.BooleanValue( + QUESTION_LISTS, + 'ALL_SCOPE_ENABLED', + default=True, + description=_('Enable "All Questions" selector'), + help_text=_('At least one of these selectors must be enabled') + ) +) + +settings.register( + livesettings.BooleanValue( + QUESTION_LISTS, + 'UNANSWERED_SCOPE_ENABLED', + default=True, + description=_('Enable "Unanswered Questions" selector'), + help_text=_('At least one of these selectors must be enabled') + ) +) + +settings.register( + livesettings.BooleanValue( + QUESTION_LISTS, + 'FOLLOWED_SCOPE_ENABLED', + default=True, + description=_('Enable "Followed Questions" selector'), + help_text=_('At least one of these selectors must be enabled') + ) +) + +def enable_default_selector_if_disabled(old_value, new_value): + scope_switch_name = new_value.upper() + '_SCOPE_ENABLED' + is_enabled = getattr(settings, scope_switch_name) + if is_enabled is False: + settings.update(scope_switch_name, True) + return new_value + +SCOPE_CHOICES_AUTHENTICATED = ( + ('all', _('All Questions')), + ('unanswered', _('Unanswered Questions')), + ('followed', _('Followed Questions')) +) + +settings.register( + livesettings.StringValue( + QUESTION_LISTS, + 'DEFAULT_SCOPE_AUTHENTICATED', + choices=SCOPE_CHOICES_AUTHENTICATED, + default='all', + description=_('Default questions selector for the authenticated users'), + update_callback=enable_default_selector_if_disabled + ) +) + +SCOPE_CHOICES_ANONYMOUS = (#anonymous users can't see followed questions + ('all', _('All Questions')), + ('unanswered', _('Unanswered Questions')), +) + +settings.register( + livesettings.StringValue( + QUESTION_LISTS, + 'DEFAULT_SCOPE_ANONYMOUS', + choices=SCOPE_CHOICES_ANONYMOUS, + default='all', + description=_('Default questions selector for the anonymous users'), + update_callback=enable_default_selector_if_disabled + ) +) diff --git a/askbot/const/__init__.py b/askbot/const/__init__.py index 0240d7f5..b9f9325c 100644 --- a/askbot/const/__init__.py +++ b/askbot/const/__init__.py @@ -112,7 +112,7 @@ DEFAULT_POST_SORT_METHOD = 'activity-desc' POST_SCOPE_LIST = ( ('all', _('all')), ('unanswered', _('unanswered')), - ('favorite', _('favorite')), + ('followed', _('followed')), ) DEFAULT_POST_SCOPE = 'all' diff --git a/askbot/deployment/__init__.py b/askbot/deployment/__init__.py index 1ba5c202..5477b284 100644 --- a/askbot/deployment/__init__.py +++ b/askbot/deployment/__init__.py @@ -217,6 +217,8 @@ def collect_missing_options(options_dict): print 'name %s cannot be used for the database name' % value elif value == path_utils.LOG_DIR_NAME: print 'name %s cannot be used for the database name' % value + else: + database_file_name = value if database_file_name: options_dict['database_name'] = database_file_name diff --git a/askbot/deps/django_authopenid/views.py b/askbot/deps/django_authopenid/views.py index 8f33e8c0..9ddb6414 100644 --- a/askbot/deps/django_authopenid/views.py +++ b/askbot/deps/django_authopenid/views.py @@ -99,7 +99,7 @@ def create_authenticated_user_account( user = User.objects.create_user(username, email) user_registered.send(None, user=user) - logging.debug('creating new openid user association for %s') + logging.debug('creating new openid user association for %s', username) if password: user.set_password(password) diff --git a/askbot/deps/livesettings/views.py b/askbot/deps/livesettings/views.py index d12eb602..0f43987c 100644 --- a/askbot/deps/livesettings/views.py +++ b/askbot/deps/livesettings/views.py @@ -7,6 +7,7 @@ from django.views.decorators.cache import never_cache from askbot.deps.livesettings import ConfigurationSettings, forms from askbot.deps.livesettings import ImageValue from askbot.deps.livesettings.overrides import get_overrides +from django.contrib import messages import logging log = logging.getLogger('configuration.views') @@ -15,7 +16,7 @@ def group_settings(request, group, template='livesettings/group_settings.html'): # Determine what set of settings this editor is used for use_db, overrides = get_overrides(); - + mgr = ConfigurationSettings() settings = mgr[group] @@ -42,10 +43,13 @@ def group_settings(request, group, template='livesettings/group_settings.html'): else: continue - if cfg.update(value): - # Give user feedback as to which settings were changed - message='Updated %s on %s' % (cfg.key, cfg.group.key) - request.user.message_set.create(message = message) + try: + if cfg.update(value): + message='Updated %s on %s' % (cfg.key, cfg.group.key) + messages.success(request, message) + #the else if for the settings that are not updated. + except Exception, e: + messages.error(request, e.message) return HttpResponseRedirect(request.path) else: @@ -71,31 +75,31 @@ def site_settings(request): default_group= mgr.groups()[0].key return HttpResponseRedirect(reverse('group_settings', args=[default_group])) #return group_settings(request, group=None, template='livesettings/site_settings.html') - + def export_as_python(request): """Export site settings as a dictionary of dictionaries""" - + from askbot.deps.livesettings.models import Setting, LongSetting import pprint - + work = {} both = list(Setting.objects.all()) both.extend(list(LongSetting.objects.all())) - + for s in both: if not work.has_key(s.site.id): work[s.site.id] = {} sitesettings = work[s.site.id] - + if not sitesettings.has_key(s.group): sitesettings[s.group] = {} sitegroup = sitesettings[s.group] - + sitegroup[s.key] = s.value - + pp = pprint.PrettyPrinter(indent=4) pretty = pp.pformat(work) return render_to_response('livesettings/text.txt', { 'text' : pretty }, mimetype='text/plain') - + export_as_python = never_cache(staff_member_required(export_as_python)) diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst index 0c54f173..7b65ee07 100644 --- a/askbot/doc/source/changelog.rst +++ b/askbot/doc/source/changelog.rst @@ -3,13 +3,18 @@ Changes in Askbot Development version ------------------- +* Added instant search to the tags page +* Added a placeholder template for the custom javascript on the question page +* Allowed to disable the big "ask" button. +* Some support for the media compression (Tyler Mandry) +* Allowed to enable and disable question scopes on the main page * Added full text support for some languages with Postgresql: Danish, Dutch, English, Finnish, French, German, Hungarian, Italian, Japanese (requires package textsearch_ja), Norwegian, Portugese, Romanian, Russian, Spanish, Swedish, Turkish. * repost answer as a comment under the previous (older) answer * minor edit option for question and answer, to suppress email alerts -* allowed tags to be created updon marking them as interesting/ignored/subscribed +* allowed tags to be created upon marking them as interesting/ignored/subscribed 0.7.48 (Jan 28, 2013) --------------------- diff --git a/askbot/doc/source/contributors.rst b/askbot/doc/source/contributors.rst index 71d942bb..3fa086df 100644 --- a/askbot/doc/source/contributors.rst +++ b/askbot/doc/source/contributors.rst @@ -43,6 +43,8 @@ Programming, bug fixes and documentation * `Paul Backhouse <https://github.com/powlo>`_ * `jtrain <https://github.com/jtrain>`_ * Niki Rocco +* `Tyler Mandry <https://github.com/tmandry>`_ +* `Jorge López Pérez <https://github.com/adobo>`_ Translations ------------ diff --git a/askbot/locale/ru/LC_MESSAGES/django.po b/askbot/locale/ru/LC_MESSAGES/django.po index 4da0a598..3f18ffbb 100644 --- a/askbot/locale/ru/LC_MESSAGES/django.po +++ b/askbot/locale/ru/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: askbot\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-18 18:49-0500\n" +"POT-Creation-Date: 2013-03-27 17:53-0500\n" "PO-Revision-Date: 2012-03-30 13:12+0000\n" "Last-Translator: olloff <olloff@gmail.com>\n" "Language-Team: Russian (http://www.transifex.net/projects/p/askbot/language/" @@ -25,119 +25,134 @@ msgstr "" #: exceptions.py:13 msgid "Sorry, but anonymous visitors cannot access this function" -msgstr "" -"К Ñожалению, Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна Ð´Ð»Ñ Ð½ÐµÐ°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… пользователей" +msgstr "К Ñожалению, Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна Ð´Ð»Ñ Ð½ÐµÐ°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… пользователей" -#: feed.py:26 feed.py:100 feed.py:28 feed.py:90 +#: feed.py:32 feed.py:106 msgid " - " msgstr "-" -#: feed.py:28 +#: feed.py:33 feed.py:107 msgid "Individual question feed" -msgstr "Лента вопроÑов" - -#: feed.py:100 feed.py:90 -msgid "latest questions" -msgstr "новые вопроÑÑ‹" +msgstr "Ð›Ð¸Ñ‡Ð½Ð°Ñ Ð»ÐµÐ½Ñ‚Ð° вопроÑов" -#: forms.py:74 +#: forms.py:138 msgid "select country" -msgstr "" -"выберите Ñтрану" +msgstr "выберите Ñтрану" -#: forms.py:83 +#: forms.py:148 msgid "Country" msgstr "Страна" -#: forms.py:91 +#: forms.py:156 msgid "Country field is required" +msgstr "Заполните поле \"Страна\"" + +#: forms.py:186 +#, fuzzy, python-format +msgid "must be > %d word" +msgid_plural "must be > %d words" +msgstr[0] "заглавие должно быть больше %d Ñимвола" +msgstr[1] "заглавие должно быть больше %d Ñимволов" +msgstr[2] "заглавие должно быть больше %d Ñимволов" + +#: forms.py:197 +#, python-format +msgid "must be < %d word" +msgid_plural "must be < %d words" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: forms.py:218 +msgid "minor edit (don't send alerts)" msgstr "" -"Заполните поле \"Страна\"" -#: forms.py:104 skins/default/templates/blocks/answer_edit_tips.html:43 -#: skins/default/templates/blocks/answer_edit_tips.html:47 -#: skins/default/templates/widgets/answer_edit_tips.html:45 -#: skins/default/templates/widgets/answer_edit_tips.html:49 -#: skins/default/templates/widgets/question_edit_tips.html:40 -#: skins/default/templates/widgets/question_edit_tips.html:45 +#: forms.py:245 templates/widgets/markdown_help.html:20 +#: templates/widgets/markdown_help.html:24 msgid "title" msgstr "заголовок" -#: forms.py:105 +#: forms.py:247 msgid "please enter a descriptive title for your question" -msgstr "Ðапример: \"Какие Ñамые вкуÑные реÑтораны в Париже?\"" +msgstr "пожалуйÑта, введите заголовок, Ñодержащий Ñуть вашего вопроÑа" -#: forms.py:110 -msgid "title must be > 10 characters" -msgstr "минимум 10 букв" +#: forms.py:258 +#, python-format +msgid "title must be > %d character" +msgid_plural "title must be > %d characters" +msgstr[0] "заглавие должно быть больше %d Ñимвола" +msgstr[1] "заглавие должно быть больше %d Ñимволов" +msgstr[2] "заглавие должно быть больше %d Ñимволов" -#: forms.py:119 forms.py:149 -msgid "content" -msgstr "Ñодержание" +#: forms.py:268 +#, python-format +msgid "The title is too long, maximum allowed size is %d characters" +msgstr "" -#: forms.py:125 -msgid "question content must be > 10 characters" -msgstr "минимум 10 букв" +#: forms.py:275 +#, python-format +msgid "The title is too long, maximum allowed size is %d bytes" +msgstr "" -#: forms.py:134 skins/default/templates/macros.html:659 -#: skins/default/templates/macros.html:671 -#: skins/default/templates/blocks/header.html:25 forms.py:185 -#: skins/common/templates/widgets/edit_post.html:21 -#: skins/default/templates/widgets/meta_nav.html:5 -msgid "tags" -msgstr "Ñ‚Ñги" +#: forms.py:305 +msgid "content" +msgstr "оÑновное Ñодержание" -#: forms.py:136 +#: forms.py:366 +#, python-format +msgid "each tag must be shorter than %(max_chars)d character" +msgid_plural "each tag must be shorter than %(max_chars)d characters" +msgstr[0] "каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знака" +msgstr[1] "каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знаков" +msgstr[2] "каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знаков" + +#: forms.py:403 msgid "" -"Tags are short keywords, with no spaces within. Up to five tags can be used." +"We ran out of space for recording the tags. Please shorten or delete some of " +"them." msgstr "" -"Теги - ключевые Ñлова. Теги отделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð¾Ð¼, " -"может быть иÑпользовано до 5 тегов." -#: forms.py:164 skins/default/templates/question_retag.html:58 forms.py:222 -msgid "tags are required" -msgstr "" -"Ñ‚Ñги обÑзательны" +#: forms.py:406 forms.py:1011 models/widgets.py:27 +#: templates/widgets/edit_post.html:41 templates/widgets/meta_nav.html:6 +msgid "tags" +msgstr "Ñ‚Ñги" -#: forms.py:173 forms.py:232 +#: forms.py:408 #, python-format -msgid "please use %(tag_count)d tag or less" -msgid_plural "please use %(tag_count)d tags or less" +msgid "" +"Tags are short keywords, with no spaces within. Up to %(max_tags)d tag can " +"be used." +msgid_plural "" +"Tags are short keywords, with no spaces within. Up to %(max_tags)d tags can " +"be used." msgstr[0] "" -"пожалуйÑта введите не более %(tag_count)d Ñлова" +"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " +"%(max_tags)d Ñ‚Ñга одновременно." msgstr[1] "" -"пожалуйÑта введите не более %(tag_count)d Ñлов" +"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " +"%(max_tags)d Ñ‚Ñгов одновременно." msgstr[2] "" -"пожалуйÑта введите не более %(tag_count)d Ñлов" +"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " +"%(max_tags)d Ñ‚Ñгов одновременно." -#: forms.py:181 forms.py:240 +#: forms.py:435 #, python-format -msgid "At least one of the following tags is required : %(tags)s" -msgstr "" -"Ðеобходим Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из Ñледующих Ñ‚Ñгов : %(tags)s" +msgid "please use %(tag_count)d tag or less" +msgid_plural "please use %(tag_count)d tags or less" +msgstr[0] "пожалуйÑта введите не более %(tag_count)d Ñлова" +msgstr[1] "пожалуйÑта введите не более %(tag_count)d Ñлов" +msgstr[2] "пожалуйÑта введите не более %(tag_count)d Ñлов" -#: forms.py:190 forms.py:249 +#: forms.py:443 #, python-format -msgid "each tag must be shorter than %(max_chars)d character" -msgid_plural "each tag must be shorter than %(max_chars)d characters" -msgstr[0] "" -"каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знака" -msgstr[1] "" -"каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знаков" -msgstr[2] "" -"каждый Ñ‚Ñг должен Ñодержать не более %(max_chars)d знаков" - -#: forms.py:198 -msgid "use-these-chars-in-tags" -msgstr "" -"иÑпользуйте только буквы и Ñимвол Ð´ÐµÑ„Ð¸Ñ \"-\"" +msgid "At least one of the following tags is required : %(tags)s" +msgstr "Ðеобходим Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из Ñледующих Ñ‚Ñгов : %(tags)s" -#: forms.py:233 forms.py:294 +#: forms.py:471 msgid "community wiki (karma is not awarded & many others can edit wiki post)" -msgstr "" -"вики (карма не приÑуждаетÑÑ, другие могут редактировать поÑÑ‚)" +msgstr "вики (карма не приÑуждаетÑÑ Ð¸ многие могут редактировать поÑÑ‚)" -#: forms.py:234 forms.py:295 +#: forms.py:475 msgid "" "if you choose community wiki option, the question and answer do not generate " "points and name of author will not be shown" @@ -145,11 +160,11 @@ msgstr "" "еÑли вы отметите опцию \"Вики ÑообщеÑтва\", то Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ ответ не дадут вам " "кармы и Ð¸Ð¼Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° не будет отображатьÑÑ" -#: forms.py:250 forms.py:311 +#: forms.py:502 msgid "update summary:" msgstr "Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± обновлениÑÑ…:" -#: forms.py:251 forms.py:312 +#: forms.py:504 msgid "" "enter a brief summary of your revision (e.g. fixed spelling, grammar, " "improved style, this field is optional)" @@ -157,70 +172,60 @@ msgstr "" "кратко опишите здеÑÑŒ Ñуть вашей правки (например - иÑправление орфографии, " "грамматики, ÑтилÑ, Ñто необÑзательно)" -#: forms.py:327 forms.py:386 +#: forms.py:590 msgid "Enter number of points to add or subtract" -msgstr "" -"Введите количеÑтво очков которые Ð’Ñ‹ ÑобираетеÑÑŒ вычеÑÑ‚ÑŒ или добавить" +msgstr "Введите количеÑтво очков которые Ð’Ñ‹ ÑобираетеÑÑŒ вычеÑÑ‚ÑŒ или добавить" -#: forms.py:341 const/__init__.py:250 forms.py:400 const/__init__.py:253 +#: forms.py:605 const/__init__.py:366 msgid "approved" -msgstr "" -"одобрен" +msgstr "одобрен" -#: forms.py:342 const/__init__.py:251 forms.py:401 const/__init__.py:254 +#: forms.py:606 const/__init__.py:367 msgid "watched" -msgstr "" -"под надзором" +msgstr "под надзором" -#: forms.py:343 const/__init__.py:252 forms.py:402 const/__init__.py:255 +#: forms.py:607 const/__init__.py:368 msgid "suspended" -msgstr "" -"ограничен в правах" +msgstr "ограничен в правах" -#: forms.py:344 const/__init__.py:253 forms.py:403 const/__init__.py:256 +#: forms.py:608 const/__init__.py:369 msgid "blocked" -msgstr "" -"заблокирован" +msgstr "заблокирован" -#: forms.py:346 forms.py:405 +#: forms.py:610 msgid "administrator" msgstr "админиÑтратор" -#: forms.py:347 const/__init__.py:249 forms.py:406 const/__init__.py:252 +#: forms.py:611 const/__init__.py:365 msgid "moderator" msgstr "модератор" -#: forms.py:367 forms.py:426 +#: forms.py:630 msgid "Change status to" -msgstr "" -"Изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð°" +msgstr "Изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð°" -#: forms.py:394 forms.py:453 +#: forms.py:657 msgid "which one?" -msgstr "" -"выберите" +msgstr "выберите" -#: forms.py:415 forms.py:474 +#: forms.py:678 msgid "Cannot change own status" -msgstr "" -"Ðевозможно изменить ÑобÑтвенный ÑтатуÑ" +msgstr "Ðевозможно изменить ÑобÑтвенный ÑтатуÑ" -#: forms.py:421 forms.py:480 +#: forms.py:684 msgid "Cannot turn other user to moderator" msgstr "" "У Ð’Ð°Ñ Ð½ÐµÑ‚ возможноÑти приÑваивать другим пользователÑм ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¼Ð¾Ð´ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð°" -#: forms.py:428 forms.py:487 +#: forms.py:691 msgid "Cannot change status of another moderator" -msgstr "" -"У Ð’Ð°Ñ Ð½ÐµÑ‚ возможноÑти изменÑÑ‚ÑŒ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¼Ð¾Ð´ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð²" +msgstr "У Ð’Ð°Ñ Ð½ÐµÑ‚ возможноÑти изменÑÑ‚ÑŒ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¼Ð¾Ð´ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð¾Ð²" -#: forms.py:434 forms.py:493 +#: forms.py:697 msgid "Cannot change status to admin" -msgstr "" -"Ðевозможно изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"админиÑтратор\"" +msgstr "Ðевозможно изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð½Ð° \"админиÑтратор\"" -#: forms.py:440 forms.py:499 +#: forms.py:703 #, python-format msgid "" "If you wish to change %(username)s's status, please make a meaningful " @@ -229,38 +234,83 @@ msgstr "" "ЕÑли Ð’Ñ‹ хотите изменить ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s, Ñто можно Ñделать " "здеÑÑŒ" -#: forms.py:449 forms.py:508 +#: forms.py:713 msgid "Subject line" msgstr "Тема" -#: forms.py:456 forms.py:515 +#: forms.py:718 msgid "Message text" msgstr "ТекÑÑ‚ ÑообщениÑ" -#: forms.py:542 -msgid "Your name:" -msgstr "Ваше имÑ:" +#: forms.py:732 +msgid "Your name (optional):" +msgstr "Ваше Ð¸Ð¼Ñ (не обÑзательно):" -#: forms.py:543 -msgid "Email (not shared with anyone):" -msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты (держитÑÑ Ð² Ñекрете):" +#: forms.py:733 +msgid "Email:" +msgstr "" +"<strong>Ваш E-mail</strong> (<i>Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть правильным, никогда не " +"показываетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователÑм</i>)" -#: forms.py:544 forms.py:533 +#: forms.py:735 msgid "Your message:" msgstr "Ваше Ñообщение:" -#: forms.py:581 forms.py:599 -msgid "ask anonymously" +#: forms.py:740 +msgid "I don't want to give my email or receive a response:" +msgstr "Я не хочу оÑтавлÑÑ‚ÑŒ Ñвой E-mail Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ получать на него ответы:" + +#: forms.py:763 +msgid "Please mark \"I dont want to give my mail\" field." msgstr "" -"ÑпроÑить анонимно" +"ПожалуйÑта, отметьте поле \"Я не хочу оÑтавлÑÑ‚ÑŒ Ñвой Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" +"\"." -#: forms.py:601 +#: forms.py:796 +msgid "keep private within your groups" +msgstr "" + +#: forms.py:835 +#, fuzzy +msgid "User name:" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:" + +#: forms.py:837 +msgid "Enter name to post on behalf of someone else. Can create new accounts." +msgstr "" + +#: forms.py:844 +#, fuzzy +msgid "Email address:" +msgstr "" +"<strong>Email адреÑ</strong> (<i><strong>не</strong> будет показан никому, " +"должен быть правильным</i>)" + +#: forms.py:894 +#, fuzzy +msgid "User name is required with the email" +msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ð±Ñзательно" + +#: forms.py:899 +msgid "Email is required if user name is added" +msgstr "" + +#: forms.py:919 forms.py:962 +msgid "ask anonymously" +msgstr "ÑпроÑить анонимно" + +#: forms.py:921 forms.py:964 msgid "Check if you do not want to reveal your name when asking this question" msgstr "" "ПоÑтавьте галочку, еÑли не хотите раÑкрывать Ñвою личноÑÑ‚ÑŒ, когда задаете " "вопроÑ" -#: forms.py:769 +#: forms.py:952 +msgid "" +"Subject line is expected in the format: [tag1, tag2, tag3,...] question title" +msgstr "" + +#: forms.py:1196 msgid "" "You have asked this question anonymously, if you decide to reveal your " "identity, please check this box." @@ -268,12 +318,11 @@ msgstr "" "Ð’Ñ‹ задали Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾, еÑли решите раÑкрыть Ñвою личноÑÑ‚ÑŒ, отметьте Ñту " "опцию." -#: forms.py:747 forms.py:773 +#: forms.py:1200 msgid "reveal identity" -msgstr "" -"убрать анонимноÑÑ‚ÑŒ" +msgstr "убрать анонимноÑÑ‚ÑŒ" -#: forms.py:831 +#: forms.py:1279 msgid "" "Sorry, only owner of the anonymous question can reveal his or her identity, " "please uncheck the box" @@ -281,7 +330,7 @@ msgstr "" "ПроÑтите, только Ñоздатель анонимного вопроÑа может раÑкрыть Ñвою личноÑÑ‚ÑŒ, " "пожалуйÑта, Ñнимите галочку." -#: forms.py:844 +#: forms.py:1292 msgid "" "Sorry, apparently rules have just changed - it is no longer possible to ask " "anonymously. Please either check the \"reveal identity\" box or reload this " @@ -291,199 +340,316 @@ msgstr "" "анонимно. ПожалуйÑта, отметьте опцию \"раÑкрыть личноÑÑ‚ÑŒ\" или перезагрузите " "Ñту Ñтраницу и попробуйте отредактировать Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñнова." -#: forms.py:856 -msgid "this email will be linked to gravatar" -msgstr "Ðтот Ð°Ð´Ñ€ÐµÑ Ð°ÑÑоциирован Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¼ аватаром (gravatar)" - -#: forms.py:863 forms.py:888 +#: forms.py:1360 msgid "Real name" -msgstr "ИмÑ" +msgstr "ÐаÑтоÑщее имÑ" -#: forms.py:870 forms.py:895 +#: forms.py:1367 msgid "Website" -msgstr "" -"Мой Ñайт" +msgstr "Веб-Ñтраница" -#: forms.py:877 forms.py:902 +#: forms.py:1374 msgid "City" msgstr "Город" -#: forms.py:886 forms.py:911 +#: forms.py:1383 msgid "Show country" -msgstr "Показывать Ñтрану" +msgstr "Показать Ñтрану" -#: forms.py:891 forms.py:916 -msgid "Date of birth" +#: forms.py:1388 +msgid "Show tag choices" msgstr "" -"Дата рождениÑ" -#: forms.py:892 forms.py:917 +#: forms.py:1393 +msgid "Date of birth" +msgstr "Дата рождениÑ" + +#: forms.py:1395 msgid "will not be shown, used to calculate age, format: YYYY-MM-DD" msgstr "показываетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ возраÑÑ‚, формат ГГГГ-ММ-ДД" -#: forms.py:898 forms.py:923 +#: forms.py:1403 msgid "Profile" -msgstr "О Ñебе" +msgstr "Профиль" -#: forms.py:907 forms.py:932 +#: forms.py:1412 msgid "Screen name" -msgstr "" -"ПÑевдоним" +msgstr "ПÑевдоним" -#: forms.py:938 forms.py:939 forms.py:963 forms.py:964 +#: forms.py:1445 forms.py:1449 msgid "this email has already been registered, please use another one" -msgstr "" -"Ñтот Ð°Ð´Ñ€ÐµÑ ÑƒÐ¶Ðµ зарегиÑтрирован, пожалуйÑта введите другой" +msgstr "Ñтот Ð°Ð´Ñ€ÐµÑ ÑƒÐ¶Ðµ зарегиÑтрирован, пожалуйÑта введите другой" -#: forms.py:946 forms.py:971 +#: forms.py:1458 msgid "Choose email tag filter" msgstr "Выберите тип фильтра по темам (ключевым Ñловам)" -#: forms.py:993 forms.py:1018 +#: forms.py:1510 msgid "Asked by me" msgstr "Заданные мной" -#: forms.py:996 forms.py:1021 +#: forms.py:1513 msgid "Answered by me" msgstr "Отвеченные мной" -#: forms.py:999 forms.py:1024 +#: forms.py:1516 msgid "Individually selected" -msgstr "" -"Выбранные мной" +msgstr "Выбранные мной" -#: forms.py:1002 forms.py:1027 +#: forms.py:1519 msgid "Entire forum (tag filtered)" -msgstr "" -"ВеÑÑŒ форум (фильтрованный по Ñ‚Ñгам)" +msgstr "ВеÑÑŒ форум (фильтрованный по Ñ‚Ñгам)" -#: forms.py:1006 forms.py:1031 +#: forms.py:1523 msgid "Comments and posts mentioning me" -msgstr "" -"Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² которых упоминаетÑÑ Ð¼Ð¾Ñ‘ имÑ" +msgstr "Ð¡Ð¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð² которых упоминаетÑÑ Ð¼Ð¾Ñ‘ имÑ" -#: forms.py:1085 forms.py:1115 +#: forms.py:1607 +msgid "please choose one of the options above" +msgstr "пожалуйÑта Ñделайте Ваш выбор (Ñм. выше)" + +#: forms.py:1610 msgid "okay, let's try!" msgstr "хорошо - попробуем!" -#: forms.py:1086 -msgid "no community email please, thanks" -msgstr "ÑпаÑибо - не надо" +#: forms.py:1613 +#, python-format +msgid "no %(sitename)s email please, thanks" +msgstr "не хочу получать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ %(sitename)s по email" -#: forms.py:1090 forms.py:1112 -msgid "please choose one of the options above" -msgstr "пожалуйÑта, Ñделайте выбор (Ñм. выше)" +#: forms.py:1661 templates/reopen.html:7 +msgid "Title" +msgstr "Заголовок" -#: urls.py:41 -msgid "about/" -msgstr "about/" +#: forms.py:1664 templates/groups.html:32 +#, fuzzy +msgid "Description" +msgstr "%(description)s" + +#: forms.py:1683 templates/tags.html:4 templates/tags/header.html:8 +#: templates/tags/list_bulk_tag_subscription.html:12 +#: templates/widgets/edit_post.html:35 templates/widgets/related_tags.html:3 +#: templates/widgets/tag_category_selector.html:2 +msgid "Tags" +msgstr "ТÑги" + +#: tasks.py:68 +#, fuzzy +msgid "An edit for my answer" +msgstr "править любой ответ" + +#: tasks.py:71 +msgid "To add to your post EDIT ABOVE THIS LINE" +msgstr "" + +#: tasks.py:89 +#, python-format +msgid "Your post at %(site_name)s is now published" +msgstr "" #: urls.py:42 +msgid "about/" +msgstr "o-nas/" + +#: urls.py:43 msgid "faq/" msgstr "faq/" -#: urls.py:43 +#: urls.py:44 msgid "privacy/" -msgstr "privacy/" +msgstr "politika-informacii/" -#: urls.py:46 urls.py:51 +#: urls.py:45 +msgid "help/" +msgstr "help/" + +#: urls.py:47 urls.py:52 msgid "answers/" -msgstr "answers/" +msgstr "otvety/" -#: urls.py:46 urls.py:87 urls.py:212 +#: urls.py:47 urls.py:132 urls.py:383 urls.py:498 msgid "edit/" -msgstr "edit/" +msgstr "redaktirovat/" -#: urls.py:51 urls.py:117 +#: urls.py:52 urls.py:162 msgid "revisions/" -msgstr "revisions/" +msgstr "versii/" + +#: urls.py:62 +msgid "questions" +msgstr "вопроÑÑ‹" -#: urls.py:82 urls.py:87 urls.py:92 urls.py:97 urls.py:102 urls.py:107 -#: urls.py:112 urls.py:117 urls.py:123 urls.py:299 +#: urls.py:127 urls.py:132 urls.py:137 urls.py:142 urls.py:147 urls.py:152 +#: urls.py:157 urls.py:162 urls.py:558 msgid "questions/" -msgstr "questions/" +msgstr "voprosy/" -#: urls.py:82 +#: urls.py:127 urls.py:472 urls.py:477 urls.py:482 urls.py:488 msgid "ask/" -msgstr "ask/" +msgstr "sprosit/" -#: urls.py:89 urls.py:92 +#: urls.py:137 msgid "retag/" -msgstr "" -"retag/" +msgstr "smenit-tag/" -#: urls.py:94 urls.py:97 +#: urls.py:142 msgid "close/" -msgstr "" -"close/" +msgstr "zakryt/" -#: urls.py:99 urls.py:102 +#: urls.py:147 msgid "reopen/" -msgstr "" -"reopen/" +msgstr "otkryt-snova/" -#: urls.py:107 +#: urls.py:152 msgid "answer/" -msgstr "answer/" +msgstr "otvet/" -#: urls.py:112 +#: urls.py:157 msgid "vote/" -msgstr "vote/" +msgstr "zolosovat/" -#: urls.py:158 +#: urls.py:220 msgid "tags/" -msgstr "tags/" +msgstr "tegi/" + +#: urls.py:225 +#, fuzzy +msgid "tags/subscriptions/" +msgstr "podpiski/" + +#: urls.py:230 +#, fuzzy +msgid "tags/subscriptions/delete/" +msgstr "podpiski/" + +#: urls.py:235 +#, fuzzy +msgid "tags/subscriptions/create/" +msgstr "podpiski/" + +#: urls.py:240 +#, fuzzy +msgid "tags/subscriptions/edit/" +msgstr "podpiski/" -#: urls.py:201 +#: urls.py:246 +#, fuzzy +msgid "suggested-tags/" +msgstr "Ñмотреть теги" + +#: urls.py:366 msgid "subscribe-for-tags/" -msgstr "subscribe-for-tags/" +msgstr "podpisatsya-na-tagi/" -#: urls.py:206 urls.py:212 urls.py:218 urls.py:226 +#: urls.py:371 urls.py:376 urls.py:383 urls.py:389 urls.py:398 urls.py:405 msgid "users/" -msgstr "users/" +msgstr "polzovateli/" + +#: urls.py:376 +msgid "by-group/" +msgstr "" -#: urls.py:211 urls.py:219 +#: urls.py:390 msgid "subscriptions/" -msgstr "subscriptions/" +msgstr "podpiski/" + +#: urls.py:399 +msgid "select_languages/" +msgstr "" + +#: urls.py:410 +msgid "groups/" +msgstr "" -#: urls.py:231 +#: urls.py:415 msgid "users/update_has_custom_avatar/" -msgstr "users/update_has_custom_avatar/" +msgstr "polzovateli/obnovlenie_so_svoim_avatarom/" -#: urls.py:236 urls.py:241 +#: urls.py:420 urls.py:425 msgid "badges/" -msgstr "badges/" +msgstr "nagrady/" -#: urls.py:238 urls.py:246 +#: urls.py:435 msgid "messages/" -msgstr "" -"messages/" +msgstr "soobscheniya/" -#: urls.py:238 urls.py:246 +#: urls.py:435 msgid "markread/" +msgstr "pometit-kak-prochitanoe/" + +#: urls.py:466 urls.py:472 urls.py:477 urls.py:482 urls.py:488 urls.py:493 +#: urls.py:498 urls.py:503 urls.py:509 +msgid "widgets/" +msgstr "widgets/" + +#: urls.py:488 deps/django_authopenid/urls.py:20 +msgid "complete/" +msgstr "zavershaem/" + +#: urls.py:493 +msgid "create/" msgstr "" -"markread/" -#: urls.py:254 urls.py:262 +#: urls.py:503 +msgid "delete/" +msgstr "удалить/" + +#: urls.py:519 msgid "upload/" -msgstr "" -"upload/" +msgstr "zagruzit/" -#: urls.py:263 +#: urls.py:520 msgid "feedback/" -msgstr "feedback/" +msgstr "otziv/" -#: urls.py:305 +#: urls.py:564 msgid "question/" -msgstr "question/" +msgstr "vopros/" -#: urls.py:304 setup_templates/settings.py:203 -#: skins/default/templates/authopenid/providers_javascript.html:7 urls.py:312 -#: setup_templates/settings.py:210 -#: skins/common/templates/authopenid/providers_javascript.html:7 +#: urls.py:571 setup_templates/settings.py:227 +#: templates/authopenid/providers_javascript.html:7 msgid "account/" +msgstr "polzovatel/" + +#: conf/access_control.py:8 +msgid "Access control settings" +msgstr "Войти как пользователь" + +#: conf/access_control.py:17 +msgid "Allow only registered user to access the forum" +msgstr "" +"Разрешить только зарегиÑтрированным пользователÑм получать доÑтуп к форуму" + +#: conf/access_control.py:22 +#, fuzzy +msgid "nothing - not required" +msgstr "Ñто поле обÑзательное" + +#: conf/access_control.py:23 +#, fuzzy +msgid "access to content" +msgstr "Войти как пользователь" + +#: conf/access_control.py:34 +msgid "Require valid email for" +msgstr "" + +#: conf/access_control.py:44 +#, fuzzy +msgid "Allowed email addresses" +msgstr "ваш email" + +#: conf/access_control.py:45 +msgid "Please use space to separate the entries" +msgstr "" + +#: conf/access_control.py:54 +msgid "Allowed email domain names" +msgstr "" + +#: conf/access_control.py:55 +msgid "Please use space to separate the entries, do not use the @ symbol!" msgstr "" -"account/" #: conf/badges.py:13 msgid "Badge settings" @@ -507,8 +673,7 @@ msgstr "Хороший ответ: минимум голоÑов за ответ #: conf/badges.py:59 msgid "Good Answer: minimum upvotes for the answer" -msgstr "" -"Замечательный ответ: минимум голоÑов за ответ" +msgstr "Замечательный ответ: минимум голоÑов за ответ" #: conf/badges.py:68 msgid "Great Answer: minimum upvotes for the answer" @@ -572,8 +737,7 @@ msgstr "ПопулÑрный вопроÑ: минимальное ÐºÐ¾Ð»Ð¸Ñ‡ÐµÑ #: conf/badges.py:203 msgid "Stellar Question: minimum stars" -msgstr "" -"Гениальный вопроÑ: минимальное количеÑтво закладок" +msgstr "Гениальный вопроÑ: минимальное количеÑтво закладок" #: conf/badges.py:212 msgid "Commentator: minimum comments" @@ -587,18 +751,13 @@ msgstr "ТакÑономиÑÑ‚: минимальное чиÑло иÑпольз msgid "Enthusiast: minimum days" msgstr "ÐнтузиаÑÑ‚: минимум дней" -#: conf/banners.py:15 -msgid "Banners" -msgstr "Баннеры" - #: conf/email.py:15 msgid "Email and email alert settings" msgstr "ÐÐ»ÐµÐºÑ‚Ñ€Ð¾Ð½Ð½Ð°Ñ Ð¿Ð¾Ñ‡Ñ‚Ð° и ÑиÑтема оповещений" #: conf/email.py:24 msgid "Prefix for the email subject line" -msgstr "" -"ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ Ñлектронной почты в Ñтроке темы" +msgstr "ÐŸÑ€ÐµÑ„Ð¸ÐºÑ Ð´Ð»Ñ Ñлектронной почты в Ñтроке темы" #: conf/email.py:26 msgid "" @@ -608,10 +767,13 @@ msgstr "" "Ðта наÑтройка по-умолчанию Ñовпадает Ñ Ð½Ð°Ñтройкой DJango " "EMAIL_SUBJECT_PREFIX. Введенное значение изменит наÑтройки по-умолчанию." -#: conf/email.py:38 conf/email.py:47 +#: conf/email.py:38 +msgid "Enable email alerts" +msgstr "РаÑÑылать Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email" + +#: conf/email.py:47 msgid "Maximum number of news entries in an email alert" -msgstr "" -"МакÑимальное количеÑтво новоÑтей в Ñообщении на email" +msgstr "МакÑимальное количеÑтво новоÑтей в Ñообщении на email" #: conf/email.py:57 msgid "Default notification frequency all questions" @@ -674,10 +836,9 @@ msgstr "" "ÐžÐ¿Ñ†Ð¸Ñ Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° чаÑтоты обновлений, отправлÑемых через E-mail длÑ: " "упоминаний и комментариев." -#: conf/email.py:119 conf/email.py:128 +#: conf/email.py:128 msgid "Send periodic reminders about unanswered questions" -msgstr "" -"ПериодичеÑки напоминать о неотвеченных вопроÑах" +msgstr "ПериодичеÑки напоминать о неотвеченных вопроÑах" #: conf/email.py:130 msgid "" @@ -689,10 +850,9 @@ msgstr "" "запуÑкать команду ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ \"send_unanswered_question_reminders" "\" (например, уÑтановив задачу в cron c заданной чаÑтотой)" -#: conf/email.py:134 conf/email.py:143 +#: conf/email.py:143 msgid "Days before starting to send reminders about unanswered questions" -msgstr "" -"Дней до начала раÑÑылки напоминаний о неотвеченных вопроÑах" +msgstr "Дней до начала раÑÑылки напоминаний о неотвеченных вопроÑах" #: conf/email.py:154 msgid "" @@ -702,10 +862,9 @@ msgstr "" "Как чаÑто поÑылать Ð½Ð°Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¾ неотвеченных вопроÑах (дней между " "напоминаниÑми)." -#: conf/email.py:157 conf/email.py:166 +#: conf/email.py:166 msgid "Max. number of reminders to send about unanswered questions" -msgstr "" -"МакÑимальное чиÑло напоминаний о неотвеченных вопроÑах" +msgstr "МакÑимальное чиÑло напоминаний о неотвеченных вопроÑах" #: conf/email.py:177 msgid "Send periodic reminders to accept the best answer" @@ -737,38 +896,34 @@ msgstr "" msgid "Max. number of reminders to send to accept the best answer" msgstr "МакÑ. чиÑло отоÑланных напоминаний Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð° наилучшего ответа" -#: conf/email.py:218 conf/email.py:227 +#: conf/email.py:227 msgid "Require email verification before allowing to post" -msgstr "" -"Требовать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ email-адреÑа перед публикацией Ñообщений" +msgstr "Требовать Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ email-адреÑа перед публикацией Ñообщений" -#: conf/email.py:219 conf/email.py:228 +#: conf/email.py:228 msgid "" "Active email verification is done by sending a verification key in email" msgstr "" "Подтверждение адреÑа Ñлектронной почты оÑущеÑтвлÑетÑÑ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²ÐºÐ¾Ð¹ ключа " "проверки на email" -#: conf/email.py:228 conf/email.py:237 +#: conf/email.py:237 msgid "Allow only one account per email address" -msgstr "" -"Разрешить только один аккаунт на каждый email-адреÑ" +msgstr "Разрешить только один аккаунт на каждый email-адреÑ" -#: conf/email.py:237 conf/email.py:246 +#: conf/email.py:246 msgid "Fake email for anonymous user" -msgstr "" -"Поддельный email-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ пользователÑ" +msgstr "Поддельный email-Ð°Ð´Ñ€ÐµÑ Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ пользователÑ" -#: conf/email.py:238 conf/email.py:247 +#: conf/email.py:247 msgid "Use this setting to control gravatar for email-less user" msgstr "" "Ðта уÑтановка предназначена Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¾Ð¼ пользователей которые не " "ввели email-адреÑ." -#: conf/email.py:247 conf/email.py:256 +#: conf/email.py:256 msgid "Allow posting questions by email" -msgstr "" -"Разрешить задавать вопроÑÑ‹ по email" +msgstr "Разрешить задавать вопроÑÑ‹ по email" #: conf/email.py:258 msgid "" @@ -790,14 +945,35 @@ msgstr "" "Ðта наÑтройка применÑетÑÑ Ðº Ñ‚Ñгам, запиÑанным в поле \"Тема\" вопроÑов, " "приÑланных по email." +#: conf/email.py:282 +msgid "Enable posting answers and comments by email" +msgstr "Разрешить отвечать и комментировать по email" + +#: conf/email.py:285 +msgid "To enable this feature make sure lamson is running" +msgstr "" + +#: conf/email.py:296 +msgid "Emailed post: when to notify author about publishing" +msgstr "" + +#: conf/email.py:321 +msgid "Reply by email hostname" +msgstr "" + +#: conf/email.py:332 +msgid "" +"Email replies having fewer words than this number will be posted as comments " +"instead of answers" +msgstr "" + #: conf/external_keys.py:11 msgid "Keys for external services" msgstr "Ключи Ð´Ð»Ñ Ð²Ð½ÐµÑˆÐ½Ð¸Ñ… ÑервиÑов" #: conf/external_keys.py:19 msgid "Google site verification key" -msgstr "" -"Идентификационный ключ Ð´Ð»Ñ Google" +msgstr "Идентификационный ключ Ð´Ð»Ñ Google" #: conf/external_keys.py:21 #, python-format @@ -811,8 +987,7 @@ msgstr "" #: conf/external_keys.py:36 msgid "Google Analytics key" -msgstr "" -"Ключ Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ ÑервиÑа \"Google Analytics\"" +msgstr "Ключ Ð´Ð»Ñ Ð°ÐºÑ‚Ð¸Ð²Ð°Ñ†Ð¸Ð¸ ÑервиÑа \"Google Analytics\"" #: conf/external_keys.py:38 #, python-format @@ -827,11 +1002,11 @@ msgstr "" msgid "Enable recaptcha (keys below are required)" msgstr "Ðктивировать recaptcha (требуетÑÑ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð½Ð° recaptcha.net)" -#: conf/external_keys.py:60 conf/external_keys.py:62 +#: conf/external_keys.py:62 msgid "Recaptcha public key" msgstr "Публичный ключ Ð´Ð»Ñ recaptcha" -#: conf/external_keys.py:68 conf/external_keys.py:70 +#: conf/external_keys.py:70 msgid "Recaptcha private key" msgstr "Секретный ключ Ð´Ð»Ñ recaptcha" @@ -846,7 +1021,7 @@ msgstr "" "назойливых Ñпам-ботов. ПожалуйÑта, получите Ñтот и публичный ключ на <a href=" "\"%(url)s\">%(url)s</a>" -#: conf/external_keys.py:82 conf/external_keys.py:84 +#: conf/external_keys.py:84 msgid "Facebook public API key" msgstr "Публичный ключ Ð´Ð»Ñ Ð´Ð¾Ñтупа Facebook API" @@ -861,11 +1036,11 @@ msgstr "" "Connect Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° на Ваш Ñайт. ПожалуйÑта, получите Ñти ключи на <a href=" "\"%(url)s\">Ñтранице ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹ Facebook</a> site" -#: conf/external_keys.py:97 conf/external_keys.py:99 +#: conf/external_keys.py:99 msgid "Facebook secret key" msgstr "Секретный ключ Ð´Ð»Ñ Facebook" -#: conf/external_keys.py:105 conf/external_keys.py:107 +#: conf/external_keys.py:107 msgid "Twitter consumer key" msgstr "Публичный ключ Ð´Ð»Ñ Ð´Ð¾Ñтупа Twitter API (consumer key)" @@ -878,12 +1053,11 @@ msgstr "" "ПожалуйÑта, зарегиÑтрируйте Ñвой форум на <a href=\"%(url)s\">Ñтранице " "приложений Twitter</a>" -#: conf/external_keys.py:118 conf/external_keys.py:120 +#: conf/external_keys.py:120 msgid "Twitter consumer secret" -msgstr "" -"Секретный ключ Twitter API (consumer secret)" +msgstr "Секретный ключ Twitter API (consumer secret)" -#: conf/external_keys.py:126 conf/external_keys.py:128 +#: conf/external_keys.py:128 msgid "LinkedIn consumer key" msgstr "Публичный ключ Ð´Ð»Ñ LinkedIn (consumer key)" @@ -895,14 +1069,13 @@ msgstr "" "ПожалуйÑта, зарегиÑтрируйте Ñвой форум на <a href=\"%(url)s\">Ñтранице " "разработчиков LinkedIn</a>" -#: conf/external_keys.py:139 conf/external_keys.py:141 +#: conf/external_keys.py:141 msgid "LinkedIn consumer secret" msgstr "Секретный ключ Ð´Ð»Ñ LinkedIn (consumer secret)" -#: conf/external_keys.py:147 conf/external_keys.py:149 +#: conf/external_keys.py:149 msgid "ident.ca consumer key" -msgstr "" -"Публичный ключ Ð´Ð»Ñ identi.ca" +msgstr "Публичный ключ Ð´Ð»Ñ identi.ca" #: conf/external_keys.py:151 #, python-format @@ -913,37 +1086,18 @@ msgstr "" "ПожалуйÑта, зарегиÑтрируйте Ñвой форум на <a href=\"%(url)s\">Ñтранице " "приложений Identi.ca</a>" -#: conf/external_keys.py:160 conf/external_keys.py:162 +#: conf/external_keys.py:162 msgid "ident.ca consumer secret" -msgstr "" -"Секретный ключ Ð´Ð»Ñ identi.ca (consumer secret)" - -#: conf/external_keys.py:168 conf/ldap.py:17 -msgid "Use LDAP authentication for the password login" -msgstr "" -"ИÑпользовать протокол LDAP Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ через пароль и Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" - -#: conf/external_keys.py:177 -msgid "LDAP service provider name" -msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ð²Ð°Ð¹Ð´ÐµÑ€Ð° ÑервиÑа авторизации LDAP" - -#: conf/external_keys.py:185 -msgid "URL for the LDAP service" -msgstr "URL, по которому доÑтупен ÑÐµÑ€Ð²Ð¸Ñ LDAP" - -#: conf/external_keys.py:193 -msgid "Explain how to change LDAP password" -msgstr "" -"Об‎‎ъÑÑните здеÑÑŒ, как изменить LDAP пароль" +msgstr "Секретный ключ Ð´Ð»Ñ identi.ca (consumer secret)" #: conf/flatpages.py:11 -msgid "Flatpages - about, privacy policy, etc." +#, fuzzy +msgid "Messages and pages - about, privacy policy, etc." msgstr "ПроÑтые Ñтраницы - \"о наÑ\", \"политика о личных данных\" и.Ñ‚.д." #: conf/flatpages.py:19 msgid "Text of the Q&A forum About page (html format)" -msgstr "" -"ТекÑÑ‚ Ñтраницы \"О наÑ\" форума (в формате html)" +msgstr "ТекÑÑ‚ Ñтраницы \"О наÑ\" форума (в формате html)" #: conf/flatpages.py:22 msgid "" @@ -955,8 +1109,7 @@ msgstr "" #: conf/flatpages.py:32 msgid "Text of the Q&A forum FAQ page (html format)" -msgstr "" -"ТекÑÑ‚ Ñтраницы \"ЧаÑто задаваемые вопроÑÑ‹/FAQ\" (в формате html)" +msgstr "ТекÑÑ‚ Ñтраницы \"ЧаÑто задаваемые вопроÑÑ‹/FAQ\" (в формате html)" #: conf/flatpages.py:35 msgid "" @@ -966,11 +1119,31 @@ msgstr "" "Сохраните, а затем <a href=\"http://validator.w3.org/\">иÑпользуйте HTML-" "валидатор</a> на Ñтранице FAQ, чтобы проверить введенные данные." -#: conf/flatpages.py:46 +#: conf/flatpages.py:45 +#, fuzzy +msgid "Instructions on how to ask questions" +msgstr "" +"<span class=\"strong big\">Ð’Ñ‹ можете добавлÑÑ‚ÑŒ Ñвои вопроÑÑ‹ анонимно</span>. " +"При добавлении ÑообщениÑ, Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ на Ñтраницу региÑтрации/входа на " +"Ñайт. Ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранен в текущей ÑеÑÑии и будет опубликован поÑле " +"того как вы войдете на Ñайт. ПроцеÑÑ Ñ€ÐµÐ³Ð¸Ñтрации/входа на Ñайт очень проÑÑ‚: " +"вход на Ñайт займет у Ð²Ð°Ñ Ð¾ÐºÐ¾Ð»Ð¾ 30 Ñекунд, Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ 1 " +"минуты или менее." + +#: conf/flatpages.py:48 +#, fuzzy +msgid "" +"HTML is allowed. Save, then <a href=\"http://validator.w3.org/\">use HTML " +"validator</a> on the \"ask\" page to check your input." +msgstr "" +"Сохраните, а затем <a href=\"http://validator.w3.org/\">иÑпользуйте HTML-" +"валидатор</a> на Ñтранице FAQ, чтобы проверить введенные данные." + +#: conf/flatpages.py:59 msgid "Text of the Q&A forum Privacy Policy (html format)" msgstr "Политика о личных данных (в формате html)" -#: conf/flatpages.py:49 +#: conf/flatpages.py:62 msgid "" "Save, then <a href=\"http://validator.w3.org/\">use HTML validator</a> on " "the \"privacy\" page to check your input." @@ -978,27 +1151,39 @@ msgstr "" "Сохраните, затем <a href=\"http://validator.w3.org/\">иÑпользуйте HTML " "валидатор</a> на Ñтранице \"О наÑ\" Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ правильноÑти." +#: conf/flatpages.py:75 +#, fuzzy +msgid "Do not edit this field manually!!!" +msgstr "Ðто необходимо заполнить" + #: conf/forum_data_rules.py:12 msgid "Data entry and display rules" msgstr "Правила Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¸ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…" -#: conf/forum_data_rules.py:22 +#: conf/forum_data_rules.py:27 +msgid "Editor for the posts" +msgstr "" + +#: conf/forum_data_rules.py:36 +msgid "Enable embedding videos. " +msgstr "" + +#: conf/forum_data_rules.py:38 #, python-format -msgid "" -"Enable embedding videos. <em>Note: please read <a href=\"%(url)s>read this</" -"a> first.</em>" +msgid "<em>Note: please read <a href=\"%(url)s\">read this</a> first.</em>" msgstr "" +"<em>Внимание: пожалуйÑта, Ñначала прочитайте <a href=\"%(url)s>Ñтот " +"документ</a>.</em>" -#: conf/forum_data_rules.py:33 +#: conf/forum_data_rules.py:48 msgid "Check to enable community wiki feature" -msgstr "" -"Отметьте, еÑли Ð’Ñ‹ хотите иÑпользовать функцию \"Вики ÑообщеÑтва\"" +msgstr "Отметьте, еÑли Ð’Ñ‹ хотите иÑпользовать функцию \"Вики ÑообщеÑтва\"" -#: conf/forum_data_rules.py:42 +#: conf/forum_data_rules.py:57 msgid "Allow asking questions anonymously" msgstr "Разрешить задавать вопроÑÑ‹ анонимно" -#: conf/forum_data_rules.py:44 +#: conf/forum_data_rules.py:59 msgid "" "Users do not accrue reputation for anonymous questions and their identity is " "not revealed until they change their mind" @@ -1006,12 +1191,11 @@ msgstr "" "Пользователи на получают репутацию за анонимные вопроÑÑ‹ и их личноÑÑ‚ÑŒ не " "будет раÑкрыта, пока они не изменÑÑ‚ Ñвоего мнениÑ" -#: conf/forum_data_rules.py:56 +#: conf/forum_data_rules.py:71 msgid "Allow posting before logging in" -msgstr "" -"Разрешить оÑтавлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ð¾ входа на Ñайт" +msgstr "Разрешить оÑтавлÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ð¾ входа на Ñайт" -#: conf/forum_data_rules.py:58 +#: conf/forum_data_rules.py:73 msgid "" "Check if you want to allow users start posting questions or answers before " "logging in. Enabling this may require adjustments in the user login system " @@ -1024,12 +1208,11 @@ msgstr "" "отправке вопроÑов каждый раз когда пользователь входит на Ñайт. Ð’ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ " "ÑиÑтема Askbot Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° на Ñайт поддерживает Ñту функцию." -#: conf/forum_data_rules.py:73 +#: conf/forum_data_rules.py:88 msgid "Allow swapping answer with question" -msgstr "" -"Разрешить перемену меÑтами вопроÑов и ответов" +msgstr "Разрешить перемену меÑтами вопроÑов и ответов" -#: conf/forum_data_rules.py:75 +#: conf/forum_data_rules.py:90 msgid "" "This setting will help import data from other forums such as zendesk, when " "automatic data import fails to detect the original question correctly." @@ -1038,17 +1221,50 @@ msgstr "" "Zendesk, когда автоматичеÑкий импорт не позволÑет определить Ð²Ð¾Ð¿Ñ€Ð¾Ñ " "правильно." -#: conf/forum_data_rules.py:87 +#: conf/forum_data_rules.py:102 msgid "Maximum length of tag (number of characters)" +msgstr "МакÑимальное количеÑтво букв в Ñ‚Ñге" + +#: conf/forum_data_rules.py:111 +msgid "Minimum length of title (number of characters)" +msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ (количеÑтво Ñимволов)" + +#: conf/forum_data_rules.py:121 +msgid "Minimum length of question body (number of characters)" +msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° вопроÑа (количеÑтво Ñимволов)" + +#: conf/forum_data_rules.py:132 +msgid "Minimum length of answer body (number of characters)" +msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° ответа (количеÑтво Ñимволов)" + +#: conf/forum_data_rules.py:143 +#, fuzzy +msgid "Limit one answer per question per user" +msgstr "Ðеотвеченные вопроÑÑ‹" + +#: conf/forum_data_rules.py:152 +msgid "Are tags required?" +msgstr "ОбÑзательны ли теги?" + +#: conf/forum_data_rules.py:158 +msgid "category tree" msgstr "" -"МакÑимальное количеÑтво букв в Ñ‚Ñге" -#: conf/forum_data_rules.py:95 conf/forum_data_rules.py:135 +#: conf/forum_data_rules.py:159 +#, fuzzy +msgid "user input" +msgstr "веб-Ñтраница" + +#: conf/forum_data_rules.py:166 +#, fuzzy +msgid "Source of tags" +msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" + +#: conf/forum_data_rules.py:177 msgid "Mandatory tags" -msgstr "" -"ОбÑзательные Ñ‚Ñги" +msgstr "ОбÑзательные Ñ‚Ñги" -#: conf/forum_data_rules.py:138 +#: conf/forum_data_rules.py:180 msgid "" "At least one of these tags will be required for any new or newly edited " "question. A mandatory tag may be wildcard, if the wildcard tags are active." @@ -1057,11 +1273,11 @@ msgstr "" "отредактированного вопроÑа. ОбÑзательный Ñ‚Ñг может быть Ñо \"звездочкой\", " "еÑли Ñ‚Ñги Ñо \"звездочкой\" включены." -#: conf/forum_data_rules.py:150 +#: conf/forum_data_rules.py:192 msgid "Force lowercase the tags" msgstr "Принудительно перевеÑти Ñ‚Ñги в нижний региÑÑ‚Ñ€" -#: conf/forum_data_rules.py:152 +#: conf/forum_data_rules.py:194 msgid "" "Attention: after checking this, please back up the database, and run a " "management command: <code>python manage.py fix_question_tags</code> to " @@ -1071,23 +1287,22 @@ msgstr "" "базу данных и запуÑтите команду: <code>python manage.py fix_question_tags</" "code> чтобы глобально переименовать Ñ‚Ñги" -#: conf/forum_data_rules.py:166 +#: conf/forum_data_rules.py:208 msgid "Format of tag list" msgstr "Формат ÑпиÑка Ñ‚Ñгов" -#: conf/forum_data_rules.py:168 +#: conf/forum_data_rules.py:210 msgid "" "Select the format to show tags in, either as a simple list, or as a tag cloud" msgstr "" "Выберите формат, в котором будут отображатьÑÑ Ñ‚Ñги: обычный ÑпиÑок или " "\"облако\" Ñ‚Ñгов" -#: conf/forum_data_rules.py:140 conf/forum_data_rules.py:180 +#: conf/forum_data_rules.py:222 msgid "Use wildcard tags" -msgstr "" -"Разрешить иÑпользование макро-тегов (Ñо звездочкой)" +msgstr "Разрешить иÑпользование макро-тегов (Ñо звездочкой)" -#: conf/forum_data_rules.py:182 +#: conf/forum_data_rules.py:224 msgid "" "Wildcard tags can be used to follow or ignore many tags at once, a valid " "wildcard tag has a single wildcard at the very end" @@ -1096,51 +1311,82 @@ msgstr "" "выбор многих Ñ‚Ñгов за раз, у правильного Ñ‚Ñга Ñо \"звездочкой\" еÑÑ‚ÑŒ только " "одна \"звездочка\" в Ñамом конце" -#: conf/forum_data_rules.py:155 conf/forum_data_rules.py:195 +#: conf/forum_data_rules.py:236 +msgid "Use separate set for subscribed tags" +msgstr "" + +#: conf/forum_data_rules.py:238 +msgid "" +"If enabled, users will have a third set of tag selections - \"subscribed" +"\" (by email) in additon to \"interesting\" and \"ignored\"" +msgstr "" + +#: conf/forum_data_rules.py:246 +msgid "Always, for all users" +msgstr "" + +#: conf/forum_data_rules.py:247 +#, fuzzy +msgid "Never, for all users" +msgstr "баннер Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ" + +#: conf/forum_data_rules.py:248 +msgid "Let users decide" +msgstr "" + +#: conf/forum_data_rules.py:256 +msgid "Publicly show user tag selections" +msgstr "" + +#: conf/forum_data_rules.py:265 +msgid "Enable separate tag search box on main page" +msgstr "" + +#: conf/forum_data_rules.py:275 msgid "Default max number of comments to display under posts" msgstr "ЧиÑло комментариев по-умолчанию, которое показываетÑÑ Ð¿Ð¾Ð´ ÑообщениÑми" -#: conf/forum_data_rules.py:166 conf/forum_data_rules.py:206 +#: conf/forum_data_rules.py:286 #, python-format msgid "Maximum comment length, must be < %(max_len)s" msgstr "" "МакÑÐ¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ð½Ðµ должна превышать %(max_len)s Ñимволов" -#: conf/forum_data_rules.py:216 +#: conf/forum_data_rules.py:296 msgid "Limit time to edit comments" msgstr "Ограничить Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° редактирование комментариев" -#: conf/forum_data_rules.py:218 +#: conf/forum_data_rules.py:298 msgid "If unchecked, there will be no time limit to edit the comments" msgstr "" "ЕÑли галочка ÑнÑта, Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° редактирование комментариев не будет ограничено" -#: conf/forum_data_rules.py:229 +#: conf/forum_data_rules.py:309 msgid "Minutes allowed to edit a comment" msgstr "Ð’Ñ€ÐµÐ¼Ñ Ð½Ð° редактирование ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ð² минутах" -#: conf/forum_data_rules.py:230 +#: conf/forum_data_rules.py:310 msgid "To enable this setting, check the previous one" msgstr "Чтобы включить Ñту наÑтройку также включите предыдущую" -#: conf/forum_data_rules.py:239 +#: conf/forum_data_rules.py:319 msgid "Save comment by pressing <Enter> key" msgstr "СохранÑÑ‚ÑŒ комментарий нажатием клавиши <Enter>" -#: conf/forum_data_rules.py:208 conf/forum_data_rules.py:248 +#: conf/forum_data_rules.py:328 msgid "Minimum length of search term for Ajax search" msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð° поиÑкового запроÑа в AJAX поиÑке" -#: conf/forum_data_rules.py:209 conf/forum_data_rules.py:249 +#: conf/forum_data_rules.py:329 msgid "Must match the corresponding database backend setting" msgstr "" "Значение должно равнÑÑ‚ÑŒÑÑ ÑоответÑтвующей уÑтановке в Вашей базе данных" -#: conf/forum_data_rules.py:258 +#: conf/forum_data_rules.py:338 msgid "Do not make text query sticky in search" msgstr "Ðе позволÑÑ‚ÑŒ запроÑу \"прилипать\" к поиÑковой Ñтроке" -#: conf/forum_data_rules.py:260 +#: conf/forum_data_rules.py:340 msgid "" "Check to disable the \"sticky\" behavior of the search query. This may be " "useful if you want to move the search bar away from the default position or " @@ -1150,24 +1396,232 @@ msgstr "" "полезно, еÑли вы хотите Ñдвинуть поиÑковую Ñтроку Ñ ÐµÐµ обычного Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ " "или вам не нравитÑÑ Ð¾Ð±Ñ‹Ñ‡Ð½Ð¾Ðµ \"залипание\" поиÑкового запроÑа." -#: conf/forum_data_rules.py:233 conf/forum_data_rules.py:273 +#: conf/forum_data_rules.py:353 msgid "Maximum number of tags per question" -msgstr "" -"МакÑимум Ñ‚Ñгов на один вопроÑ" +msgstr "МакÑимум Ñ‚Ñгов на один вопроÑ" -#: conf/forum_data_rules.py:245 conf/forum_data_rules.py:285 +#: conf/forum_data_rules.py:365 msgid "Number of questions to list by default" -msgstr "" -"КоличеÑтво вопроÑов отображаемых на главной Ñтранице" +msgstr "КоличеÑтво вопроÑов отображаемых на главной Ñтранице" -#: conf/forum_data_rules.py:255 conf/forum_data_rules.py:295 +#: conf/forum_data_rules.py:375 msgid "What should \"unanswered question\" mean?" msgstr "Что должен означать \"неотвеченный вопроÑ\"?" -#: conf/license.py:13 -msgid "Content LicensContent License" +#: conf/group_settings.py:9 +#, fuzzy +msgid "Group settings" +msgstr "Редактировать наÑтройки групп" + +#: conf/group_settings.py:18 +msgid "Enable user groups" msgstr "" +#: conf/group_settings.py:41 +msgid "everyone" +msgstr "" + +#: conf/group_settings.py:42 +#, fuzzy +msgid "Global user group name" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ClaimID" + +#: conf/group_settings.py:43 +msgid "All users belong to this group automatically" +msgstr "" + +#: conf/group_settings.py:53 +#, fuzzy +msgid "Enable group email adddresses" +msgstr "Сохранить Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" + +#: conf/group_settings.py:55 +msgid "" +"If selected, users can post to groups by email \"group-name@domain.com\"" +msgstr "" + +#: conf/karma_and_badges_visibility.py:12 +msgid "Karma & Badge visibility" +msgstr "" + +#: conf/karma_and_badges_visibility.py:27 +msgid "Visibility of karma" +msgstr "" + +#: conf/karma_and_badges_visibility.py:30 +msgid "User's karma may be shown publicly or only to the owners" +msgstr "" + +#: conf/karma_and_badges_visibility.py:44 +msgid "Visibility of badges" +msgstr "" + +#: conf/karma_and_badges_visibility.py:47 +msgid "Badges can be either publicly shown or completely hidden" +msgstr "" + +#: conf/ldap.py:9 +msgid "LDAP login configuration" +msgstr "" + +#: conf/ldap.py:24 +msgid "Use LDAP authentication for the password login" +msgstr "" +"ИÑпользовать протокол LDAP Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸ через пароль и Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#: conf/ldap.py:34 +#, fuzzy +msgid "Automatically create user accounts when possible" +msgstr "" +"ÐвоматичеÑки принÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ€Ð°ÑÑылки по " +"Ñлетронной почте" + +#: conf/ldap.py:37 +msgid "" +"Potentially reduces number of steps in the registration process but can " +"expose personal information, e.g. when LDAP login name is the same as email " +"address or real name." +msgstr "" + +#: conf/ldap.py:45 +msgid "Version 3" +msgstr "" + +#: conf/ldap.py:46 +msgid "Version 2 (insecure and deprecated)!!!" +msgstr "" + +#: conf/ldap.py:55 +msgid "LDAP protocol version" +msgstr "" + +#: conf/ldap.py:57 +msgid "" +"Note that Version 2 protocol is not secure!!! Do not use it on unprotected " +"network." +msgstr "" + +#: conf/ldap.py:67 +msgid "LDAP URL" +msgstr "" + +#: conf/ldap.py:76 +msgid "LDAP encoding" +msgstr "" + +#: conf/ldap.py:79 +msgid "" +"This value in almost all cases is \"utf-8\". Change it if yours is " +"different. This field is required" +msgstr "" + +#: conf/ldap.py:90 +msgid "Base DN (distinguished name)" +msgstr "" + +#: conf/ldap.py:93 +msgid "" +"Usually base DN mirrors domain name of your organization, e.g. \"dn=example," +"dn=com\" when your site url is \"example.com\".This value is the \"root\" " +"address of your LDAP directory." +msgstr "" + +#: conf/ldap.py:104 +msgid "User search filter template" +msgstr "" + +#: conf/ldap.py:107 +msgid "" +"Python string format template, must have two string placeholders, which " +"should be left in the intact format. First placeholder will be used for the " +"user id field name, and the second - for the user id value. The template can " +"be extended to match schema of your LDAP directory." +msgstr "" + +#: conf/ldap.py:121 +#, fuzzy +msgid "UserID/login field" +msgstr "Вход выполнен" + +#: conf/ldap.py:124 +msgid "" +"This field is required. For Microsoft Active Directory this value usually is " +"\"sAMAccountName\"." +msgstr "" + +#: conf/ldap.py:135 +msgid "\"Common Name\" field" +msgstr "" + +#: conf/ldap.py:137 +msgid "" +"Common name is a formal or informal name of a person, can be blank. Use it " +"only if surname and given names are not available." +msgstr "" + +#: conf/ldap.py:147 +msgid "First name, Last name" +msgstr "" + +#: conf/ldap.py:148 +msgid "Last name, First name" +msgstr "" + +#: conf/ldap.py:155 +msgid "\"Common Name\" field format" +msgstr "" + +#: conf/ldap.py:158 +msgid "Use this only if \"Common Name\" field is used." +msgstr "" + +#: conf/ldap.py:166 +msgid "Given (First) name" +msgstr "" + +#: conf/ldap.py:168 conf/ldap.py:178 +msgid "This field can be blank" +msgstr "" + +#: conf/ldap.py:176 +msgid "Surname (last) name" +msgstr "" + +#: conf/ldap.py:186 +msgid "LDAP Server EMAIL field name" +msgstr "Ðазвание Ð¿Ð¾Ð»Ñ EMAIL на Ñервере LDAP" + +#: conf/ldap.py:188 +#, fuzzy +msgid "This field is required" +msgstr "Ñто поле обÑзательное" + +#: conf/leading_sidebar.py:12 +msgid "Common left sidebar" +msgstr "ÐžÐ±Ñ‰Ð°Ñ Ð»ÐµÐ²Ð°Ñ Ð±Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ" + +#: conf/leading_sidebar.py:20 +msgid "Enable left sidebar" +msgstr "Включить левую боковую панель" + +#: conf/leading_sidebar.py:29 +msgid "HTML for the left sidebar" +msgstr "HTML код Ð´Ð»Ñ Ð»ÐµÐ²Ð¾Ð¹ боковой панели." + +#: conf/leading_sidebar.py:32 +msgid "" +"Use this area to enter content at the LEFT sidebarin HTML format. When " +"using this option, please use the HTML validation service to make sure that " +"your input is valid and works well in all browsers." +msgstr "" +"ИÑпользуйте Ñту облаÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñодержимого LEFT боковой панели HTML " +"формата. Когда иÑпользуете Ñту опцию , иÑпользуйте ÑÐµÑ€Ð²Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ HTML Ð´Ð»Ñ " +"того что б убедитÑÑ Ñ‡Ñ‚Ð¾ она Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¸ работает во вÑех браузерах" + +#: conf/license.py:13 +msgid "Content License" +msgstr "Содержание лицензии" + #: conf/license.py:21 msgid "Show license clause in the site footer" msgstr "Показывать информацию о лицензии в футере" @@ -1249,13 +1703,12 @@ msgstr "" msgid "Upload your icon" msgstr "Загрузите Ваше изображение" -#: conf/login_providers.py:92 conf/login_providers.py:90 +#: conf/login_providers.py:95 #, python-format msgid "Activate %(provider)s login" -msgstr "" -"Включить вход через %(provider)s" +msgstr "Включить вход через %(provider)s" -#: conf/login_providers.py:95 +#: conf/login_providers.py:100 #, python-format msgid "" "Note: to really enable %(provider)s login some additional parameters will " @@ -1264,6 +1717,62 @@ msgstr "" "Примечание: чтобы дейÑтвительно включить вход через %(provider)s, вы должны " "указать некоторые дополнительные данные в разделе \"Внешние ключи\"" +#: conf/main_pages.py:11 +#, fuzzy +msgid "Logic of the questions page" +msgstr "CSS Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° вопроÑов" + +#: conf/main_pages.py:20 +msgid "Enable big Ask button" +msgstr "" + +#: conf/main_pages.py:22 +msgid "" +"Disabling this button will reduce number of new questions. If this button is " +"disabled, the ask button in the search menu will still be available." +msgstr "" + +#: conf/main_pages.py:34 +msgid "Enable \"All Questions\" selector" +msgstr "" + +#: conf/main_pages.py:35 conf/main_pages.py:45 conf/main_pages.py:55 +msgid "At least one of these selectors must be enabled" +msgstr "" + +#: conf/main_pages.py:44 +#, fuzzy +msgid "Enable \"Unanswered Questions\" selector" +msgstr "напоминание о неотвеченных вопроÑах выÑлано" + +#: conf/main_pages.py:54 +msgid "Enable \"Followed Questions\" selector" +msgstr "" + +#: conf/main_pages.py:67 conf/main_pages.py:84 +#, fuzzy +msgid "All Questions" +msgstr "вопроÑÑ‹" + +#: conf/main_pages.py:68 conf/main_pages.py:85 +#, fuzzy +msgid "Unanswered Questions" +msgstr "Ðеотвеченные вопроÑÑ‹" + +#: conf/main_pages.py:69 +#, fuzzy +msgid "Followed Questions" +msgstr "закладки" + +#: conf/main_pages.py:78 +msgid "Default questions selector for the authenticated users" +msgstr "" + +#: conf/main_pages.py:94 +#, fuzzy +msgid "Default questions selector for the anonymous users" +msgstr "ПÑевдоним Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ пользователÑ" + #: conf/markup.py:15 msgid "Markup in posts" msgstr "Разметка в ÑообщениÑÑ…" @@ -1378,82 +1887,88 @@ msgstr "ГолоÑовать \"против\"" #: conf/minimum_reputation.py:40 msgid "Answer own question immediately" -msgstr "" -"Отвечать на ÑобÑтвенный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² любое времÑ" +msgstr "Отвечать на ÑобÑтвенный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² любое времÑ" #: conf/minimum_reputation.py:49 msgid "Accept own answer" -msgstr "" -"Принимать ÑобÑтвенный ответ" +msgstr "Принимать ÑобÑтвенный ответ" #: conf/minimum_reputation.py:58 -msgid "Flag offensive" -msgstr "" -"Помечать Ñпам" +#, fuzzy +msgid "Accept any answer" +msgstr "Принимать ÑобÑтвенный ответ" #: conf/minimum_reputation.py:67 -msgid "Leave comments" -msgstr "" -"ДобавлÑÑ‚ÑŒ комментарии" +msgid "Flag offensive" +msgstr "Помечать Ñпам" #: conf/minimum_reputation.py:76 -msgid "Delete comments posted by others" -msgstr "" -"УдалÑÑ‚ÑŒ чужие комментарии" +msgid "Leave comments" +msgstr "ДобавлÑÑ‚ÑŒ комментарии" #: conf/minimum_reputation.py:85 -msgid "Delete questions and answers posted by others" -msgstr "" -"УдалÑÑ‚ÑŒ чужие вопроÑÑ‹ или ответы" +msgid "Delete comments posted by others" +msgstr "УдалÑÑ‚ÑŒ чужие комментарии" #: conf/minimum_reputation.py:94 -msgid "Upload files" -msgstr "" -"Загружать файлы" +msgid "Delete questions and answers posted by others" +msgstr "УдалÑÑ‚ÑŒ чужие вопроÑÑ‹ или ответы" #: conf/minimum_reputation.py:103 -msgid "Close own questions" -msgstr "" -"Закрывать ÑобÑтвенные вопроÑÑ‹" +msgid "Upload files" +msgstr "Загружать файлы" #: conf/minimum_reputation.py:112 -msgid "Retag questions posted by other people" +msgid "Insert clickable links" msgstr "" -"ИзменÑÑ‚ÑŒ Ñ‚Ñги чужих вопроÑов" #: conf/minimum_reputation.py:121 -msgid "Reopen own questions" +msgid "Insert link suggestions as plain text" msgstr "" -"Заново открывать Ñвои вопроÑÑ‹" -#: conf/minimum_reputation.py:130 +#: conf/minimum_reputation.py:123 +msgid "" +"This value should be smaller than that for \"insert clickable links\". This " +"setting should stop link-spamming by newly registered users." +msgstr "" + +#: conf/minimum_reputation.py:134 +msgid "Close own questions" +msgstr "Закрывать ÑобÑтвенные вопроÑÑ‹" + +#: conf/minimum_reputation.py:143 +msgid "Retag questions posted by other people" +msgstr "ИзменÑÑ‚ÑŒ Ñ‚Ñги чужих вопроÑов" + +#: conf/minimum_reputation.py:152 +msgid "Reopen own questions" +msgstr "Заново открывать Ñвои вопроÑÑ‹" + +#: conf/minimum_reputation.py:161 msgid "Edit community wiki posts" msgstr "Редактировать ÑообщениÑ, помеченные как вики" -#: conf/minimum_reputation.py:139 +#: conf/minimum_reputation.py:170 msgid "Edit posts authored by other people" -msgstr "" -"Править чужие ÑообщениÑ" +msgstr "Править чужие ÑообщениÑ" -#: conf/minimum_reputation.py:148 +#: conf/minimum_reputation.py:179 msgid "View offensive flags" -msgstr "" -"ПроÑматривать отметки о неумеÑтном контенте" +msgstr "ПроÑматривать отметки о неумеÑтном контенте" -#: conf/minimum_reputation.py:157 +#: conf/minimum_reputation.py:188 msgid "Close questions asked by others" -msgstr "" -"Закрывать чужие вопроÑÑ‹" +msgstr "Закрывать чужие вопроÑÑ‹" -#: conf/minimum_reputation.py:166 +#: conf/minimum_reputation.py:197 msgid "Lock posts" msgstr "Блокировать ÑообщениÑ" -#: conf/minimum_reputation.py:175 +#: conf/minimum_reputation.py:206 msgid "Remove rel=nofollow from own homepage" msgstr "Удалить ключ rel=nofollow из адреÑа домашней Ñтраницы" -#: conf/minimum_reputation.py:177 +#: conf/minimum_reputation.py:208 msgid "" "When a search engine crawler will see a rel=nofollow attribute on a link - " "the link will not count towards the rank of the users personal site." @@ -1461,6 +1976,40 @@ msgstr "" "Когда поиÑковый робот увидит аттрибут rel=nofollow на ÑÑылке, Ñ‚Ð°ÐºÐ°Ñ ÑÑылка " "не будет учитыватьÑÑ Ð´Ð»Ñ Ñ€Ð°ÑÑчета рейтинга Ñайта." +#: conf/minimum_reputation.py:220 +msgid "Post answers and comments by email" +msgstr "" + +#: conf/minimum_reputation.py:229 +msgid "Trigger email notifications" +msgstr "" + +#: conf/minimum_reputation.py:231 +msgid "" +"Reduces spam as notifications wont't be sent to regular users for posts of " +"low karma users" +msgstr "" + +#: conf/moderation.py:19 +#, fuzzy +msgid "Content moderation" +msgstr "модерациÑ" + +#: conf/moderation.py:28 +msgid "Enable content moderation" +msgstr "" + +#: conf/moderation.py:38 +#, fuzzy +msgid "Enable tag moderation" +msgstr "модерациÑ" + +#: conf/moderation.py:40 +msgid "" +"If enabled, any new tags will not be applied to the questions, but emailed " +"to the moderators. To use this feature, tags must be optional." +msgstr "" + #: conf/reputation_changes.py:13 msgid "Karma loss and gain rules" msgstr "Правила ÑƒÐ²ÐµÐ»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ð¸ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸" @@ -1471,44 +2020,37 @@ msgstr "МакÑимальный роÑÑ‚ репутации пользоватР#: conf/reputation_changes.py:32 msgid "Gain for receiving an upvote" -msgstr "" -"Увеличение репутации за положительный голоÑ" +msgstr "Увеличение репутации за положительный голоÑ" #: conf/reputation_changes.py:41 msgid "Gain for the author of accepted answer" -msgstr "" -"Увеличение репутации Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° принÑтого ответа" +msgstr "Увеличение репутации Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° принÑтого ответа" #: conf/reputation_changes.py:50 msgid "Gain for accepting best answer" -msgstr "" -"Увеличение репутации за пометку лучшего ответа" +msgstr "Увеличение репутации за пометку лучшего ответа" #: conf/reputation_changes.py:59 msgid "Gain for post owner on canceled downvote" -msgstr "" -"Увеличение репутации автора ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отмене отрицательного голоÑа" +msgstr "Увеличение репутации автора ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отмене отрицательного голоÑа" #: conf/reputation_changes.py:68 msgid "Gain for voter on canceling downvote" -msgstr "" -"Увеличение репутации голоÑующего при отмене отрицательного голоÑа" +msgstr "Увеличение репутации голоÑующего при отмене отрицательного голоÑа" #: conf/reputation_changes.py:78 msgid "Loss for voter for canceling of answer acceptance" -msgstr "" -"ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ñующего при отмене выбора лучшего ответа " +msgstr "ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ñующего при отмене выбора лучшего ответа " #: conf/reputation_changes.py:88 msgid "Loss for author whose answer was \"un-accepted\"" -msgstr "" -"ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отмене выбора лучшего ответа" +msgstr "ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð° ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ отмене выбора лучшего ответа" #: conf/reputation_changes.py:98 msgid "Loss for giving a downvote" -msgstr "" -"ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ñующего \"против\"" +msgstr "ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ð´Ð»Ñ Ð³Ð¾Ð»Ð¾Ñующего \"против\"" +#: conf/reputation_changes.py:108 msgid "Loss for owner of post that was flagged offensive" msgstr "" "ÐŸÐ¾Ñ‚ÐµÑ€Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°, чье Ñообщение было помечено как неумеÑтное" @@ -1540,12 +2082,11 @@ msgid "Main page sidebar" msgstr "Ð‘Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ главной Ñтраницы" #: conf/sidebar_main.py:20 conf/sidebar_profile.py:20 -#: conf/sidebar_question.py:19 +#: conf/sidebar_question.py:48 msgid "Custom sidebar header" msgstr "Заголовок перÑональной боковой панели" #: conf/sidebar_main.py:23 conf/sidebar_profile.py:23 -#: conf/sidebar_question.py:22 msgid "" "Use this area to enter content at the TOP of the sidebarin HTML format. " "When using this option (as well as the sidebar footer), please use the HTML " @@ -1564,8 +2105,7 @@ msgstr "Показать блок Ñ Ð°Ð²Ð°Ñ‚Ð°Ñ€Ð¾Ð¼ в боковой пане #: conf/sidebar_main.py:38 msgid "Uncheck this if you want to hide the avatar block from the sidebar " -msgstr "" -"Снимите галочку, еÑли хотите Ñкрыть блок аватара Ñ Ð±Ð¾ÐºÐ¾Ð²Ð¾Ð¹ панели" +msgstr "Снимите галочку, еÑли хотите Ñкрыть блок аватара Ñ Ð±Ð¾ÐºÐ¾Ð²Ð¾Ð¹ панели" #: conf/sidebar_main.py:49 msgid "Limit how many avatars will be displayed on the sidebar" @@ -1595,12 +2135,12 @@ msgstr "" "панели" #: conf/sidebar_main.py:85 conf/sidebar_profile.py:36 -#: conf/sidebar_question.py:75 +#: conf/sidebar_question.py:104 msgid "Custom sidebar footer" msgstr "Футер перÑональной боковой панели" #: conf/sidebar_main.py:88 conf/sidebar_profile.py:39 -#: conf/sidebar_question.py:78 +#: conf/sidebar_question.py:107 msgid "" "Use this area to enter content at the BOTTOM of the sidebarin HTML format. " "When using this option (as well as the sidebar header), please use the HTML " @@ -1618,22 +2158,68 @@ msgid "User profile sidebar" msgstr "Войти как пользователь" #: conf/sidebar_question.py:11 -msgid "Question page sidebar" +#, fuzzy +msgid "Question page banners and sidebar" msgstr "ТÑги" -#: conf/sidebar_question.py:35 +#: conf/sidebar_question.py:19 +#, fuzzy +msgid "Top banner" +msgstr "баннер" + +#: conf/sidebar_question.py:22 +#, fuzzy +msgid "" +"When using this option, please use the HTML validation service to make sure " +"that your input is valid and works well in all browsers." +msgstr "" +"ИÑпользуйте Ñту облаÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñодержимого LEFT боковой панели HTML " +"формата. Когда иÑпользуете Ñту опцию , иÑпользуйте ÑÐµÑ€Ð²Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ HTML Ð´Ð»Ñ " +"того что б убедитÑÑ Ñ‡Ñ‚Ð¾ она Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¸ работает во вÑех браузерах" + +#: conf/sidebar_question.py:33 +#, fuzzy +msgid "Answers banner" +msgstr "Отвеченные мной" + +#: conf/sidebar_question.py:36 +#, fuzzy +msgid "" +"This banner will show above the second answer. When using this option, " +"please use the HTML validation service to make sure that your input is valid " +"and works well in all browsers." +msgstr "" +"ИÑпользуйте Ñту облаÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñодержимого LEFT боковой панели HTML " +"формата. Когда иÑпользуете Ñту опцию , иÑпользуйте ÑÐµÑ€Ð²Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ HTML Ð´Ð»Ñ " +"того что б убедитÑÑ Ñ‡Ñ‚Ð¾ она Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¸ работает во вÑех браузерах" + +#: conf/sidebar_question.py:51 +#, fuzzy +msgid "" +"Use this area to enter content at the TOP of the sidebarin HTML format. When " +"using this option (as well as the sidebar footer), please use the HTML " +"validation service to make sure that your input is valid and works well in " +"all browsers." +msgstr "" +"ИÑпользуйте Ñту облаÑÑ‚ÑŒ чтобы задать Ñодержимое ВЕРХÐЕЙ чаÑти боковой панели " +"в формате HTML. При иÑпользовании Ñтой наÑтройки (так же, как и Ð´Ð»Ñ Ñ„ÑƒÑ‚ÐµÑ€Ð° " +"боковой панели), пожалуйÑта, иÑпользуйте ÑÐµÑ€Ð²Ð¸Ñ HTML-валидации, чтобы " +"убедитьÑÑ, что введенные вами данные дейÑтвительны и будут нормально " +"отображатьÑÑ Ð²Ð¾ вÑех браузерах." + +#: conf/sidebar_question.py:64 msgid "Show tag list in sidebar" msgstr "Показать Ñ‚Ñги на боковой панели" -#: conf/sidebar_question.py:37 +#: conf/sidebar_question.py:66 msgid "Uncheck this if you want to hide the tag list from the sidebar " msgstr "Снимите галочку, еÑли вы хотите Ñкрыть ÑпиÑок Ñ‚Ñгов Ñ Ð±Ð¾ÐºÐ¾Ð²Ð¾Ð¹ панели" -#: conf/sidebar_question.py:48 +#: conf/sidebar_question.py:77 msgid "Show meta information in sidebar" msgstr "Показывать мета-информацию в боковой панели" -#: conf/sidebar_question.py:50 +#: conf/sidebar_question.py:79 msgid "" "Uncheck this if you want to hide the meta information about the question " "(post date, views, last updated). " @@ -1641,30 +2227,30 @@ msgstr "" "Снимите галочку, еÑли вы хотите Ñкрыть мета-информацию о вопроÑе (дата " "Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñа, количеÑтво проÑмотров, дата поÑледнего обновлениÑ)" -#: conf/sidebar_question.py:62 +#: conf/sidebar_question.py:91 msgid "Show related questions in sidebar" -msgstr "" -"Показывать похожие вопроÑÑ‹ в боковой панели" +msgstr "Показывать похожие вопроÑÑ‹ в боковой панели" -#: conf/sidebar_question.py:64 +#: conf/sidebar_question.py:93 msgid "Uncheck this if you want to hide the list of related questions. " -msgstr "" -"Снимите галочку, еÑли хотите Ñкрыть ÑпиÑок похожих вопроÑов." +msgstr "Снимите галочку, еÑли хотите Ñкрыть ÑпиÑок похожих вопроÑов." #: conf/site_modes.py:64 msgid "Bootstrap mode" msgstr "\"Стартовый\" режим" #: conf/site_modes.py:74 -msgid "Activate a \"Bootstrap\" mode" +#, fuzzy +msgid "Activate a \"Large site\" mode" msgstr "Включить \"Стартовый\" режим" #: conf/site_modes.py:76 +#, fuzzy msgid "" -"Bootstrap mode lowers reputation and certain badge thresholds, to values, " -"more suitable for the smaller communities, <strong>WARNING:</strong> your " -"current value for Minimum reputation, Bagde Settings and Vote Rules will be " -"changed after you modify this setting." +"\"Large site\" mode increases reputation and certain badge thresholds, to " +"values, more suitable for the larger communities, <strong>WARNING:</strong> " +"your current values for Minimum reputation, Badge Settings and Vote Rules " +"will be changed after you modify this setting." msgstr "" "\"Стартовый\" режим понижает границы репутации и некоторых наград до " "значений, которые более приемлемы Ð´Ð»Ñ Ð¼Ð°Ð»Ñ‹Ñ… ÑообщеÑтв. <strong>ОСТОРОЖÐО:</" @@ -1685,8 +2271,7 @@ msgstr "Ключевые Ñлова Ð´Ð»Ñ Ñайта, через запÑтую #: conf/site_settings.py:39 msgid "Copyright message to show in the footer" -msgstr "" -"Сообщение о праве ÑобÑтвенноÑти, которое показываетÑÑ Ð² футере" +msgstr "Сообщение о праве ÑобÑтвенноÑти, которое показываетÑÑ Ð² футере" #: conf/site_settings.py:49 msgid "Site description for the search engines" @@ -1696,7 +2281,7 @@ msgstr "ОпиÑание Ñайта Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñковиков" msgid "Short name for your Q&A forum" msgstr "Краткое название форума" -#: conf/site_settings.py:68 conf/site_settings.py:67 +#: conf/site_settings.py:67 msgid "Base URL for your Q&A forum, must start with http or https" msgstr "Ð‘Ð°Ð·Ð¾Ð²Ð°Ñ Ñ‡Ð°ÑÑ‚ÑŒ URL форума (должна начинатьÑÑ Ñ http или https)" @@ -1714,18 +2299,19 @@ msgstr "" msgid "Use HTML to format the message " msgstr "ИÑпользовать HTML Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑообщениÑ" -#: conf/site_settings.py:103 conf/site_settings.py:102 +#: conf/site_settings.py:102 msgid "Feedback site URL" msgstr "СÑылка на Ñайт Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ñ‚Ð½Ð¾Ð¹ ÑвÑзи" -#: conf/site_settings.py:105 conf/site_settings.py:104 +#: conf/site_settings.py:104 msgid "If left empty, a simple internal feedback form will be used instead" msgstr "" "ЕÑли оÑтавите Ñто поле пуÑтым, то Ð´Ð»Ñ Ð¿Ð¾Ñылки обратной ÑвÑзи будет " "иÑпользоватьÑÑ Ð²ÑÑ‚Ñ€Ð¾ÐµÐ½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ" #: conf/skin_general_settings.py:15 -msgid "Logos and HTML <head> parts" +#, fuzzy +msgid "Skin, logos and HTML <head> parts" msgstr "Логотипы и HTML-теги <head>" #: conf/skin_general_settings.py:23 @@ -1737,23 +2323,105 @@ msgid "To change the logo, select new file, then submit this whole form." msgstr "" "Чтобы Ñменить логотип, выберите новый файл затем нажмите кнопку \"Сохранить\"" -#: conf/skin_general_settings.py:39 conf/skin_general_settings.py:37 +#: conf/skin_general_settings.py:34 +msgid "English" +msgstr "" + +#: conf/skin_general_settings.py:35 +msgid "Spanish" +msgstr "" + +#: conf/skin_general_settings.py:36 +msgid "Catalan" +msgstr "" + +#: conf/skin_general_settings.py:37 +msgid "German" +msgstr "" + +#: conf/skin_general_settings.py:38 +msgid "Greek" +msgstr "" + +#: conf/skin_general_settings.py:39 +msgid "Finnish" +msgstr "" + +#: conf/skin_general_settings.py:40 +msgid "French" +msgstr "" + +#: conf/skin_general_settings.py:41 +msgid "Hindi" +msgstr "" + +#: conf/skin_general_settings.py:42 +msgid "Hungarian" +msgstr "" + +#: conf/skin_general_settings.py:43 +msgid "Italian" +msgstr "" + +#: conf/skin_general_settings.py:44 +msgid "Japanese" +msgstr "" + +#: conf/skin_general_settings.py:45 +msgid "Korean" +msgstr "" + +#: conf/skin_general_settings.py:46 +msgid "Portuguese" +msgstr "" + +#: conf/skin_general_settings.py:47 +msgid "Brazilian Portuguese" +msgstr "" + +#: conf/skin_general_settings.py:48 +msgid "Romanian" +msgstr "" + +#: conf/skin_general_settings.py:49 +msgid "Russian" +msgstr "" + +#: conf/skin_general_settings.py:50 +msgid "Serbian" +msgstr "" + +#: conf/skin_general_settings.py:51 +msgid "Turkish" +msgstr "" + +#: conf/skin_general_settings.py:52 +msgid "Vietnamese" +msgstr "" + +#: conf/skin_general_settings.py:53 +msgid "Chinese" +msgstr "" + +#: conf/skin_general_settings.py:54 +msgid "Chinese (Taiwan)" +msgstr "" + +#: conf/skin_general_settings.py:73 msgid "Show logo" msgstr "Показывать логотип" -#: conf/skin_general_settings.py:41 conf/skin_general_settings.py:39 +#: conf/skin_general_settings.py:75 msgid "" "Check if you want to show logo in the forum header or uncheck in the case " "you do not want the logo to appear in the default location" -msgstr "" -"Отметьте еÑли Ð’Ñ‹ хотите иÑпользовать логотип в головной чаÑти форум" +msgstr "Отметьте еÑли Ð’Ñ‹ хотите иÑпользовать логотип в головной чаÑти форум" -#: conf/skin_general_settings.py:53 conf/skin_general_settings.py:51 +#: conf/skin_general_settings.py:87 msgid "Site favicon" -msgstr "" -"favicon Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Ñайта" +msgstr "favicon Ð´Ð»Ñ Ð’Ð°ÑˆÐµÐ³Ð¾ Ñайта" -#: conf/skin_general_settings.py:55 conf/skin_general_settings.py:53 +#: conf/skin_general_settings.py:89 #, python-format msgid "" "A small 16x16 or 32x32 pixel icon image used to distinguish your site in the " @@ -1764,11 +2432,11 @@ msgstr "" "иÑпользуетÑÑ Ð² интерфейÑе браузеров. Ðа <a href=\"%(favicon_info_url)s" "\">ЗдеÑÑŒ</a> еÑÑ‚ÑŒ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ favicon." -#: conf/skin_general_settings.py:73 conf/skin_general_settings.py:69 +#: conf/skin_general_settings.py:105 msgid "Password login button" msgstr "Кнопка Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° Ñ Ð¿Ð°Ñ€Ð¾Ð»ÐµÐ¼" -#: conf/skin_general_settings.py:75 conf/skin_general_settings.py:71 +#: conf/skin_general_settings.py:107 msgid "" "An 88x38 pixel image that is used on the login screen for the password login " "button." @@ -1776,11 +2444,11 @@ msgstr "" "Картинка размером 88x38, ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¸ÑпользуетÑÑ Ð² качеÑтве кнопки Ð´Ð»Ñ " "авторизации Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ и паролем." -#: conf/skin_general_settings.py:90 conf/skin_general_settings.py:84 +#: conf/skin_general_settings.py:120 msgid "Show all UI functions to all users" msgstr "Отображать вÑе функции пользовательÑкого интерфейÑа вÑем пользователÑм" -#: conf/skin_general_settings.py:92 conf/skin_general_settings.py:86 +#: conf/skin_general_settings.py:122 msgid "" "If checked, all forum functions will be shown to users, regardless of their " "reputation. However to use those functions, moderation rules, reputation and " @@ -1791,19 +2459,19 @@ msgstr "" "фактичеÑкий доÑтуп вÑÑ‘ равно будет завиÑить от репутации, правил " "Ð¼Ð¾Ð´ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñ‚.п." -#: conf/skin_general_settings.py:107 conf/skin_general_settings.py:101 +#: conf/skin_general_settings.py:137 msgid "Select skin" msgstr "Выберите тему пользовательÑкого интерфейÑа" -#: conf/skin_general_settings.py:112 +#: conf/skin_general_settings.py:148 msgid "Customize HTML <HEAD>" msgstr "ПерÑонализировать HTML-Ñ‚Ñг <HEAD>" -#: conf/skin_general_settings.py:121 +#: conf/skin_general_settings.py:157 msgid "Custom portion of the HTML <HEAD>" msgstr "Ваши дополнениÑ, внеÑенные в HTML-Ñ‚Ñг <HEAD>" -#: conf/skin_general_settings.py:123 +#: conf/skin_general_settings.py:159 msgid "" "<strong>To use this option</strong>, check \"Customize HTML <HEAD>\" " "above. Contents of this box will be inserted into the <HEAD> portion " @@ -1824,11 +2492,11 @@ msgstr "" "<strong>Примечание:</strong> еÑли вы хотите иÑпользовать Ñту наÑтройку, " "пожалуйÑта проверьте Ñтраницу Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ валидатора HTML от W3C." -#: conf/skin_general_settings.py:145 +#: conf/skin_general_settings.py:181 msgid "Custom header additions" msgstr "Ваши Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ðº заголовку Ñтраницы" -#: conf/skin_general_settings.py:147 +#: conf/skin_general_settings.py:183 msgid "" "Header is the bar at the top of the content that contains user info and site " "links, and is common to all pages. Use this area to enter contents of the " @@ -1843,11 +2511,11 @@ msgstr "" "Ñ‚Ñгом <HEAD>), иÑпользуйте ÑервиÑÑ‹ HTML-валидации, чтобы убедитьÑÑ, " "что введенные вами данные верны и будут работать во вÑех браузерах." -#: conf/skin_general_settings.py:162 +#: conf/skin_general_settings.py:198 msgid "Site footer mode" msgstr "Режим футера" -#: conf/skin_general_settings.py:164 +#: conf/skin_general_settings.py:200 msgid "" "Footer is the bottom portion of the content, which is common to all pages. " "You can disable, customize, or use the default footer." @@ -1856,11 +2524,11 @@ msgstr "" "можете его отключить, наÑтроить ÑамоÑтоÑтельно или иÑпользовать Ñтандартный " "футер." -#: conf/skin_general_settings.py:181 +#: conf/skin_general_settings.py:217 msgid "Custom footer (HTML format)" msgstr "Футер Ñтраницы (в формате HTML)" -#: conf/skin_general_settings.py:183 +#: conf/skin_general_settings.py:219 msgid "" "<strong>To enable this function</strong>, please select option 'customize' " "in the \"Site footer mode\" above. Use this area to enter contents of the " @@ -1875,11 +2543,11 @@ msgstr "" "ÑервиÑÑ‹ HTML-валидации, чтобы убедитьÑÑ, что введенные вами данные верны и " "будут работать во вÑех браузерах." -#: conf/skin_general_settings.py:198 +#: conf/skin_general_settings.py:234 msgid "Apply custom style sheet (CSS)" msgstr "Добавить ÑобÑтвенный Ñтиль Ñтраницы (CSS)" -#: conf/skin_general_settings.py:200 +#: conf/skin_general_settings.py:236 msgid "" "Check if you want to change appearance of your form by adding custom style " "sheet rules (please see the next item)" @@ -1887,11 +2555,11 @@ msgstr "" "ПоÑтавьте галочку, еÑли вы хотите изменить вид форм вашего Ñайта, добавив " "ÑобÑтвенные правила ÑÑ‚Ð¸Ð»Ñ Ñтраницы (пожалуйÑта, взглÑните на Ñледующую опцию)" -#: conf/skin_general_settings.py:212 +#: conf/skin_general_settings.py:248 msgid "Custom style sheet (CSS)" msgstr "Ваш ÑобÑтвенный Ñтиль Ñтраницы (CSS)" -#: conf/skin_general_settings.py:214 +#: conf/skin_general_settings.py:250 msgid "" "<strong>To use this function</strong>, check \"Apply custom style sheet\" " "option above. The CSS rules added in this window will be applied after the " @@ -1906,20 +2574,20 @@ msgstr "" "custom.css\", где чаÑÑ‚ÑŒ ÑÑылки \"<forum url>\" (по-умолчанию Ñто " "пуÑÑ‚Ð°Ñ Ñтрока) завиÑит от наÑтроек в файле urls.py." -#: conf/skin_general_settings.py:230 +#: conf/skin_general_settings.py:266 msgid "Add custom javascript" msgstr "Добавить ÑобÑтвенный javascript-код" -#: conf/skin_general_settings.py:233 +#: conf/skin_general_settings.py:269 msgid "Check to enable javascript that you can enter in the next field" msgstr "" "ПоÑтавьте галочку чтобы включить javascript-код, введенный в Ñледующее поле" -#: conf/skin_general_settings.py:243 +#: conf/skin_general_settings.py:279 msgid "Custom javascript" msgstr "СобÑтвенный javascript-код" -#: conf/skin_general_settings.py:245 +#: conf/skin_general_settings.py:281 msgid "" "Type or paste plain javascript that you would like to run on your site. Link " "to the script will be inserted at the bottom of the HTML output and will be " @@ -1936,53 +2604,58 @@ msgstr "" "браузерами (<strong>чтобы включить ваш ÑобÑтвенный javascript-код</strong>, " "отметьте галочку наÑтройки \"ДобавлÑÑ‚ÑŒ ÑобÑтвенный javascript-код\")" -#: conf/skin_general_settings.py:269 conf/skin_general_settings.py:263 +#: conf/skin_general_settings.py:299 msgid "Skin media revision number" msgstr "Ð ÐµÐ²Ð¸Ð·Ð¸Ñ Ð¼ÐµÐ´Ð¸Ð°-файлов Ñкина" -#: conf/skin_general_settings.py:265 +#: conf/skin_general_settings.py:301 msgid "Will be set automatically but you can modify it if necessary." msgstr "" "ÐžÐ¿Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ наÑтроена автоматичеÑки, но вы Ñможете изменить ее, еÑли Ñто " "будет необходимо." -#: conf/skin_general_settings.py:276 +#: conf/skin_general_settings.py:312 msgid "Hash to update the media revision number automatically." msgstr "Ð¥Ñш Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð¼ÐµÑ€Ð° ревизии медиа-файлов" -#: conf/skin_general_settings.py:280 +#: conf/skin_general_settings.py:316 msgid "Will be set automatically, it is not necesary to modify manually." msgstr "" "ÐžÐ¿Ñ†Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚ уÑтановлена автоматичеÑки, нет необходимоÑти изменÑÑ‚ÑŒ ее вручную." #: conf/social_sharing.py:11 -msgid "Sharing content on social networks" -msgstr "РаÑпроÑтранение информации по Ñоциальным ÑетÑм" +#, fuzzy +msgid "Content sharing" +msgstr "Содержание лицензии" #: conf/social_sharing.py:20 -msgid "Check to enable sharing of questions on Twitter" -msgstr "" -"ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Twitter" +#, fuzzy +msgid "Check to enable RSS feeds" +msgstr "Отметьте, еÑли Ð’Ñ‹ хотите иÑпользовать функцию \"Вики ÑообщеÑтва\"" #: conf/social_sharing.py:29 -msgid "Check to enable sharing of questions on Facebook" +msgid "Hashtag or suffix to sharing messages" msgstr "" -"ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Facebook" #: conf/social_sharing.py:38 -msgid "Check to enable sharing of questions on LinkedIn" -msgstr "" -"ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в LinkedIn" +msgid "Check to enable sharing of questions on Twitter" +msgstr "ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Twitter" #: conf/social_sharing.py:47 -msgid "Check to enable sharing of questions on Identi.ca" -msgstr "" -"ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Identi.ca" +msgid "Check to enable sharing of questions on Facebook" +msgstr "ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Facebook" #: conf/social_sharing.py:56 +msgid "Check to enable sharing of questions on LinkedIn" +msgstr "ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в LinkedIn" + +#: conf/social_sharing.py:65 +msgid "Check to enable sharing of questions on Identi.ca" +msgstr "ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Identi.ca" + +#: conf/social_sharing.py:74 msgid "Check to enable sharing of questions on Google+" -msgstr "" -"ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Google+" +msgstr "ПоÑтавьте галочку, чтобы включить публикацию вопроÑов в Google+" #: conf/spam_and_moderation.py:10 msgid "Akismet spam protection" @@ -2023,34 +2696,88 @@ msgstr "Внешние Ñлужбы" msgid "Login, Users & Communication" msgstr "Вход на Ñайт, Пользователи и СвÑзь" -#: conf/user_settings.py:12 conf/user_settings.py:14 +#: conf/user_settings.py:14 msgid "User settings" +msgstr "ÐаÑтройки Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" + +#: conf/user_settings.py:23 +#, fuzzy +msgid "On-screen greeting shown to the new users" msgstr "" -"ÐаÑтройки Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" +"ТекÑÑ‚, который показываетÑÑ Ð² приветÑтвенном Ñообщении Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ " +"пользователÑ" -#: conf/user_settings.py:21 conf/user_settings.py:23 +#: conf/user_settings.py:32 +#, fuzzy +msgid "Allow anonymous users send feedback" +msgstr "неавторизированные пользователи не могут голоÑовать " + +#: conf/user_settings.py:41 msgid "Allow editing user screen name" msgstr "Позволить пользователÑм изменÑÑ‚ÑŒ имена" -#: conf/user_settings.py:30 conf/user_settings.py:41 -msgid "Allow account recovery by email" +#: conf/user_settings.py:50 +msgid "Auto-fill user name, email, etc on registration" msgstr "" -"ВоÑÑтановление аккаунта по Ñлектронной почте" -#: conf/user_settings.py:39 conf/user_settings.py:50 -msgid "Allow adding and removing login methods" +#: conf/user_settings.py:51 +msgid "Implemented only for LDAP logins at this point" msgstr "" -"Разрешить добавление и удаление методов входа" -#: conf/user_settings.py:49 conf/user_settings.py:60 +#: conf/user_settings.py:60 +msgid "Allow users change own email addresses" +msgstr "Разрешить пользователÑм менÑÑ‚ÑŒ их Ñлектронные почтовые адреÑа." + +#: conf/user_settings.py:69 +#, fuzzy +msgid "Allow email address in user name" +msgstr "email обÑзательное" + +#: conf/user_settings.py:78 +msgid "Allow account recovery by email" +msgstr "ВоÑÑтановление аккаунта по Ñлектронной почте" + +#: conf/user_settings.py:87 +msgid "Allow adding and removing login methods" +msgstr "Разрешить добавление и удаление методов входа" + +#: conf/user_settings.py:97 msgid "Minimum allowed length for screen name" msgstr "Минимальное количеÑтво букв в именах пользователей" -#: conf/user_settings.py:97 +#: conf/user_settings.py:105 +msgid "Default avatar for users" +msgstr "Стандартный аватар Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" + +#: conf/user_settings.py:107 +msgid "" +"To change the avatar image, select new file, then submit this whole form." +msgstr "" +"Чтобы изменить аватар, выберите новый файл, а затем отправьте Ñту форму." + +#: conf/user_settings.py:120 +msgid "Use automatic avatars from gravatar.com" +msgstr "ИÑпользовать аватары Ñ ÑервиÑа gravatar.com" + +#: conf/user_settings.py:122 +msgid "" +"Check this option if you want to allow the use of gravatar.com for avatars. " +"Please, note that this feature might take about 10 minutes to become fully " +"effective. You will have to enable uploaded avatars as well. For more " +"information, please visit <a href=\"http://askbot.org/doc/optional-modules." +"html#uploaded-avatars\">this page</a>." +msgstr "" +"Включите Ñту опцию еÑли вы хотите разрешить иÑпользовать gravatar.com Ð´Ð»Ñ " +"аватаров. Имейте в виду, что любые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтой функции вÑтупÑÑ‚ в Ñилу " +"приблизительно через 10 минут. Ð’Ñ‹ также можете загружать аватары. Ð”Ð»Ñ " +"Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации поÑетите <a href=\"http://askbot.org/doc/" +"optional-modules.html#uploaded-avatars\">Ñту Ñтраницу</a>." + +#: conf/user_settings.py:134 msgid "Default Gravatar icon type" msgstr "Стандартный тип аватара Gravatar" -#: conf/user_settings.py:99 +#: conf/user_settings.py:136 msgid "" "This option allows you to set the default avatar type for email addresses " "without associated gravatar images. For more information, please visit <a " @@ -2061,10 +2788,9 @@ msgstr "" "информации, пожалуйÑта, поÑетите <a href=\"http://en.gravatar.com/site/" "implement/images/\">Ñту Ñтраницу</a>." -#: conf/user_settings.py:71 conf/user_settings.py:109 +#: conf/user_settings.py:146 msgid "Name for the Anonymous user" -msgstr "" -"ПÑевдоним Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ пользователÑ" +msgstr "ПÑевдоним Ð´Ð»Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾Ð³Ð¾ пользователÑ" #: conf/vote_rules.py:14 msgid "Vote and flag limits" @@ -2080,13 +2806,11 @@ msgstr "МакÑимальное количеÑтво меток на одног #: conf/vote_rules.py:42 msgid "Threshold for warning about remaining daily votes" -msgstr "" -"Порог Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð± оÑтавшихÑÑ Ð·Ð° день голоÑах " +msgstr "Порог Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´ÑƒÐ¿Ñ€ÐµÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð± оÑтавшихÑÑ Ð·Ð° день голоÑах " #: conf/vote_rules.py:51 msgid "Number of days to allow canceling votes" -msgstr "" -"ЧиÑло дней, в течение которых можно отменить голоÑ" +msgstr "ЧиÑло дней, в течение которых можно отменить голоÑ" #: conf/vote_rules.py:60 msgid "Number of days required before answering own question" @@ -2101,405 +2825,499 @@ msgstr "ЧиÑло Ñигналов, требуемое Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ msgid "Number of flags required to automatically delete posts" msgstr "КоличеÑтво флагов, необходимое Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑкого ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñа" -#: const/__init__.py:10 +#: conf/vote_rules.py:87 +msgid "" +"Minimum days to accept an answer, if it has not been accepted by the " +"question poster" +msgstr "" +"Минимум дней чтобы принÑÑ‚ÑŒ ответ, еÑли он не был принÑÑ‚ автором вопроÑа" + +#: const/__init__.py:11 msgid "duplicate question" msgstr "такой Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑƒÐ¶Ðµ был задан" -#: const/__init__.py:11 +#: const/__init__.py:12 msgid "question is off-topic or not relevant" msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ðµ по теме данного форума" -#: const/__init__.py:12 +#: const/__init__.py:13 msgid "too subjective and argumentative" msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñлишком Ñубъективный или Ñпорный" -#: const/__init__.py:13 +#: const/__init__.py:14 msgid "not a real question" msgstr "на Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ðµ похоже" -#: const/__init__.py:14 +#: const/__init__.py:15 msgid "the question is answered, right answer was accepted" msgstr "на Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» дан ответ и он был принÑÑ‚ как правильный" -#: const/__init__.py:15 +#: const/__init__.py:16 msgid "question is not relevant or outdated" msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑƒÑтарел или более на актуален" -#: const/__init__.py:16 +#: const/__init__.py:17 msgid "question contains offensive or malicious remarks" msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñодержит грубые или злонамеренные заÑвлениÑ" -#: const/__init__.py:17 +#: const/__init__.py:18 msgid "spam or advertising" msgstr "Ñпам или реклама" -#: const/__init__.py:18 +#: const/__init__.py:19 msgid "too localized" msgstr "Ñлишком Ñпециализированный" -#: const/__init__.py:41 const/__init__.py:43 -#: skins/default/templates/question/answer_tab_bar.html:18 +#: const/__init__.py:45 templates/question/answer_tab_bar.html:18 msgid "newest" msgstr "новые" -#: const/__init__.py:42 skins/default/templates/users.html:26 -#: const/__init__.py:44 skins/default/templates/users.html:27 -#: skins/default/templates/question/answer_tab_bar.html:15 +#: const/__init__.py:46 templates/users.html:50 +#: templates/question/answer_tab_bar.html:15 msgid "oldest" -msgstr "" -"Ñтарые" +msgstr "Ñтарые" -#: const/__init__.py:43 const/__init__.py:45 +#: const/__init__.py:47 msgid "active" msgstr "активные" -#: const/__init__.py:44 const/__init__.py:46 +#: const/__init__.py:48 msgid "inactive" msgstr "неактивные" -#: const/__init__.py:47 +#: const/__init__.py:49 msgid "hottest" msgstr "Ñамые горÑчие" -#: const/__init__.py:48 +#: const/__init__.py:50 msgid "coldest" msgstr "Ñамые холодные" -#: const/__init__.py:47 const/__init__.py:49 -#: skins/default/templates/question/answer_tab_bar.html:21 +#: const/__init__.py:51 templates/question/answer_tab_bar.html:21 msgid "most voted" -msgstr "" -"больше голоÑов" +msgstr "больше голоÑов" -#: const/__init__.py:48 const/__init__.py:50 +#: const/__init__.py:52 msgid "least voted" msgstr "меньше голоÑов" -#: const/__init__.py:49 const/__init__.py:51 +#: const/__init__.py:53 msgid "relevance" msgstr "умеÑтноÑÑ‚ÑŒ" -#: const/__init__.py:57 skins/default/templates/main_page/tab_bar.html:71 -#: skins/default/templates/user_profile/user_inbox.html:50 -#: const/__init__.py:63 -#: skins/default/templates/user_profile/user_inbox.html:62 +#: const/__init__.py:65 +msgid "Never" +msgstr "" + +#: const/__init__.py:66 +msgid "When new post is published" +msgstr "" + +#: const/__init__.py:67 +msgid "When post is published or revised" +msgstr "" + +#: const/__init__.py:99 +#, python-format +msgid "" +"Note: to reply with a comment, please use <a href=\"mailto:%(addr)s?subject=" +"%(subject)s\">this link</a>" +msgstr "" + +#: const/__init__.py:113 templates/user_inbox/responses_and_flags.html:9 msgid "all" msgstr "вÑе" -#: const/__init__.py:58 skins/default/templates/main_page/tab_bar.html:76 -#: const/__init__.py:64 +#: const/__init__.py:114 msgid "unanswered" msgstr "неотвеченные" -msgid "Unanswered" -msgstr "неотвеченные" - -#: const/__init__.py:59 skins/default/templates/main_page/tab_bar.html:82 -#: const/__init__.py:65 -msgid "favorite" -msgstr "закладки" - -msgid "Followed" +#: const/__init__.py:115 +#, fuzzy +msgid "followed" msgstr "закладки" -#: const/__init__.py:70 +#: const/__init__.py:120 msgid "list" msgstr "ТÑги" -#: const/__init__.py:71 +#: const/__init__.py:121 msgid "cloud" msgstr "облако" -#: const/__init__.py:78 const/__init__.py:79 +#: const/__init__.py:129 msgid "Question has no answers" msgstr "Ðет ни одного ответа" -#: const/__init__.py:79 const/__init__.py:80 +#: const/__init__.py:130 msgid "Question has no accepted answers" msgstr "Ðет принÑтого ответа" -#: const/__init__.py:122 const/__init__.py:125 +#: const/__init__.py:186 msgid "asked a question" msgstr "задан вопроÑ" -#: const/__init__.py:123 const/__init__.py:126 +#: const/__init__.py:187 msgid "answered a question" -msgstr "" -"дан ответ" +msgstr "дан ответ" -#: const/__init__.py:124 const/__init__.py:127 const/__init__.py:203 +#: const/__init__.py:188 const/__init__.py:292 msgid "commented question" -msgstr "" -"прокомментирован вопроÑ" +msgstr "прокомментирован вопроÑ" -#: const/__init__.py:125 const/__init__.py:128 const/__init__.py:204 +#: const/__init__.py:189 const/__init__.py:293 msgid "commented answer" -msgstr "" -"прокомментирован ответ" +msgstr "прокомментирован ответ" -#: const/__init__.py:126 const/__init__.py:129 +#: const/__init__.py:190 msgid "edited question" -msgstr "" -"отредактирован вопроÑ" +msgstr "отредактирован вопроÑ" -#: const/__init__.py:127 const/__init__.py:130 +#: const/__init__.py:191 msgid "edited answer" -msgstr "" -"отредактирован ответ" +msgstr "отредактирован ответ" -#: const/__init__.py:128 -msgid "received award" +#: const/__init__.py:192 +msgid "received badge" msgstr "получена награда" -#: const/__init__.py:129 const/__init__.py:132 +#: const/__init__.py:193 msgid "marked best answer" msgstr "отмечен как лучший ответ" -#: const/__init__.py:130 const/__init__.py:133 +#: const/__init__.py:194 msgid "upvoted" msgstr "проголоÑовали \"за\"" -#: const/__init__.py:131 const/__init__.py:134 +#: const/__init__.py:195 msgid "downvoted" msgstr "проголоÑовали \"против\"" -#: const/__init__.py:132 const/__init__.py:135 +#: const/__init__.py:196 msgid "canceled vote" msgstr "отмененный голоÑ" -#: const/__init__.py:133 const/__init__.py:136 +#: const/__init__.py:197 msgid "deleted question" msgstr "удаленный вопроÑ" -#: const/__init__.py:134 const/__init__.py:137 +#: const/__init__.py:198 msgid "deleted answer" msgstr "удаленный ответ" -#: const/__init__.py:135 const/__init__.py:138 +#: const/__init__.py:199 msgid "marked offensive" msgstr "отметка неумеÑтного ÑодержаниÑ" -#: const/__init__.py:136 const/__init__.py:139 +#: const/__init__.py:200 msgid "updated tags" msgstr "обновленные Ñ‚Ñги " -#: const/__init__.py:140 +#: const/__init__.py:201 msgid "selected favorite" msgstr "выбран избранным" -#: const/__init__.py:141 +#: const/__init__.py:202 msgid "completed user profile" msgstr "заполненный профиль пользователÑ" -#: const/__init__.py:139 const/__init__.py:142 +#: const/__init__.py:203 msgid "email update sent to user" msgstr "Ñообщение выÑлано по Ñлектронной почте" -#: const/__init__.py:145 +#: const/__init__.py:204 +msgid "a post was shared" +msgstr "" + +#: const/__init__.py:207 msgid "reminder about unanswered questions sent" msgstr "напоминание о неотвеченных вопроÑах выÑлано" -#: const/__init__.py:149 +#: const/__init__.py:211 msgid "reminder about accepting the best answer sent" msgstr "напоминание о принÑтии лучшего ответа отправлено" -#: const/__init__.py:148 const/__init__.py:151 +#: const/__init__.py:213 msgid "mentioned in the post" msgstr "упомÑнуто в текÑте ÑообщениÑ" -#: const/__init__.py:199 -msgid "question_answered" -msgstr "question_answered" +#: const/__init__.py:216 +#, fuzzy +msgid "created tag description" +msgstr "Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: чаÑто даётÑÑ ÐºÐ°Ðº оÑобые заÑлуги" -#: const/__init__.py:200 -msgid "question_commented" -msgstr "question_commented" +#: const/__init__.py:220 +#, fuzzy +msgid "updated tag description" +msgstr "" +"Ð—Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° - выÑÑˆÐ°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° ÑообщеÑтва. Ð”Ð»Ñ ÐµÐµ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾ показать " +"глубокие Ð·Ð½Ð°Ð½Ð¸Ñ Ð¸ ÑпоÑобноÑти в дополнение к активному учаÑтию." -#: const/__init__.py:201 -msgid "answer_commented" -msgstr "answer_commented" +#: const/__init__.py:222 +#, fuzzy +msgid "made a new post" +msgstr "У Ð²Ð°Ñ %(response_count)s новое Ñообщение" -#: const/__init__.py:202 -msgid "answer_accepted" -msgstr "answer_accepted" +#: const/__init__.py:225 +#, fuzzy +msgid "made an edit" +msgstr "Сохранить" + +#: const/__init__.py:229 +msgid "created post reject reason" +msgstr "" -#: const/__init__.py:206 const/__init__.py:209 +#: const/__init__.py:233 +msgid "updated post reject reason" +msgstr "" + +#: const/__init__.py:291 +msgid "answered question" +msgstr "ответил" + +#: const/__init__.py:294 +msgid "accepted answer" +msgstr "принÑÑ‚ лучший ответ" + +#: const/__init__.py:298 msgid "[closed]" msgstr "[закрыт]" -#: const/__init__.py:207 const/__init__.py:210 +#: const/__init__.py:299 msgid "[deleted]" msgstr "[удален]" -#: const/__init__.py:208 views/readers.py:613 const/__init__.py:211 -#: views/readers.py:566 +#: const/__init__.py:300 views/readers.py:636 msgid "initial version" msgstr "Ð¸Ð·Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ€ÑиÑ" -#: const/__init__.py:209 const/__init__.py:212 +#: const/__init__.py:301 msgid "retagged" msgstr "теги изменены" -#: const/__init__.py:217 const/__init__.py:220 -msgid "off" -msgstr "отключить" +#: const/__init__.py:302 +#, fuzzy +msgid "[private]" +msgstr "[Цена]" +#: const/__init__.py:311 msgid "show all tags" msgstr "отключить" -#: const/__init__.py:218 const/__init__.py:221 -msgid "exclude ignored" -msgstr "иÑключить игнорируемые" - +#: const/__init__.py:312 const/__init__.py:321 const/__init__.py:327 +#: const/__init__.py:333 msgid "exclude ignored tags" msgstr "иÑключить игнорируемые" -#: const/__init__.py:219 const/__init__.py:222 -msgid "only selected" -msgstr "только избранные" - +#: const/__init__.py:313 const/__init__.py:322 const/__init__.py:334 msgid "only interesting tags" msgstr "только избранные" -#: const/__init__.py:223 const/__init__.py:226 +#: const/__init__.py:317 const/__init__.py:328 const/__init__.py:335 +#, fuzzy +msgid "only subscribed tags" +msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" + +#: const/__init__.py:320 const/__init__.py:326 const/__init__.py:332 +#, fuzzy +msgid "email for all tags" +msgstr "Ñмотреть вÑе теги" + +#: const/__init__.py:339 msgid "instantly" -msgstr "" -"немедленно" +msgstr "немедленно" -#: const/__init__.py:224 const/__init__.py:227 +#: const/__init__.py:340 msgid "daily" msgstr "ежедневно" -#: const/__init__.py:225 const/__init__.py:228 +#: const/__init__.py:341 msgid "weekly" msgstr "еженедельно" -#: const/__init__.py:226 const/__init__.py:229 +#: const/__init__.py:342 msgid "no email" -msgstr "" -"не Ñлать email" +msgstr "не Ñлать email" -#: const/__init__.py:236 +#: const/__init__.py:349 msgid "identicon" msgstr "identicon" -#: const/__init__.py:237 +#: const/__init__.py:350 msgid "mystery-man" msgstr "mystery-man" -#: const/__init__.py:238 +#: const/__init__.py:351 msgid "monsterid" msgstr "monsterid" -#: const/__init__.py:239 +#: const/__init__.py:352 msgid "wavatar" msgstr "Как Ñменить мой аватар (Gravatar) и что Ñто такое?" -#: const/__init__.py:240 +#: const/__init__.py:353 msgid "retro" msgstr "retro" -#: const/__init__.py:284 const/__init__.py:287 -#: skins/default/templates/badges.html:38 +#: const/__init__.py:400 templates/badges.html:33 msgid "gold" msgstr "золотаÑ" -#: const/__init__.py:285 const/__init__.py:288 -#: skins/default/templates/badges.html:48 +#: const/__init__.py:401 templates/badges.html:43 msgid "silver" msgstr "ÑеребрÑнаÑ" -#: const/__init__.py:286 const/__init__.py:289 -#: skins/default/templates/badges.html:55 +#: const/__init__.py:402 templates/badges.html:50 msgid "bronze" msgstr "Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ " -#: const/__init__.py:301 +#: const/__init__.py:414 msgid "None" msgstr "Ðичего" -#: const/__init__.py:302 +#: const/__init__.py:415 msgid "Gravatar" msgstr "Как Ñменить мой аватар (Gravatar) и что Ñто такое?" -#: const/__init__.py:303 +#: const/__init__.py:416 msgid "Uploaded Avatar" msgstr "Как Ñменить мой аватар (Gravatar) и что Ñто такое?" -#: const/message_keys.py:15 const/message_keys.py:21 -msgid "most relevant questions" +#: const/__init__.py:420 +#, fuzzy +msgid "date descendant" +msgstr "дату окончаниÑ" + +#: const/__init__.py:421 +#, fuzzy +msgid "date ascendant" +msgstr "дату окончаниÑ" + +#: const/__init__.py:422 +msgid "activity descendant" msgstr "" -"наиболее похожие вопроÑÑ‹" -#: const/message_keys.py:16 const/message_keys.py:22 +#: const/__init__.py:423 +#, fuzzy +msgid "activity ascendant" +msgstr "активноÑÑ‚ÑŒ" + +#: const/__init__.py:424 +#, fuzzy +msgid "answers descendant" +msgstr "ответил" + +#: const/__init__.py:425 +#, fuzzy +msgid "answers ascendant" +msgstr "ответил" + +#: const/__init__.py:426 +#, fuzzy +msgid "votes descendant" +msgstr "оÑталоÑÑŒ голоÑов" + +#: const/__init__.py:427 +#, fuzzy +msgid "votes ascendant" +msgstr "оÑталоÑÑŒ голоÑов" + +#: const/message_keys.py:21 +msgid "most relevant questions" +msgstr "наиболее похожие вопроÑÑ‹" + +#: const/message_keys.py:22 msgid "click to see most relevant questions" -msgstr "" -"нажмите чтобы увидеть наиболее похожие вопроÑÑ‹" +msgstr "нажмите чтобы увидеть наиболее похожие вопроÑÑ‹" -#: const/message_keys.py:17 const/message_keys.py:23 +#: const/message_keys.py:23 msgid "by relevance" -msgstr "" -"ÑхожеÑÑ‚ÑŒ" +msgstr "ÑхожеÑÑ‚ÑŒ" -#: const/message_keys.py:18 const/message_keys.py:24 +#: const/message_keys.py:24 msgid "click to see the oldest questions" msgstr "нажмите, чтобы увидеть Ñтарые вопроÑÑ‹" -#: const/message_keys.py:19 const/message_keys.py:25 +#: const/message_keys.py:25 msgid "by date" -msgstr "" -"дата" +msgstr "дата" -#: const/message_keys.py:20 const/message_keys.py:26 +#: const/message_keys.py:26 msgid "click to see the newest questions" -msgstr "" -"нажмите, чтобы увидеть Ñамые новые вопроÑÑ‹" +msgstr "нажмите, чтобы увидеть Ñамые новые вопроÑÑ‹" -#: const/message_keys.py:21 const/message_keys.py:27 +#: const/message_keys.py:27 msgid "click to see the least recently updated questions" -msgstr "" -"нажмите, чтобы поÑмотреть недавно обновленные вопроÑÑ‹" +msgstr "нажмите, чтобы поÑмотреть недавно обновленные вопроÑÑ‹" -#: const/message_keys.py:22 const/message_keys.py:28 +#: const/message_keys.py:28 msgid "by activity" -msgstr "" -"активноÑÑ‚ÑŒ" +msgstr "активноÑÑ‚ÑŒ" -#: const/message_keys.py:23 const/message_keys.py:29 +#: const/message_keys.py:29 msgid "click to see the most recently updated questions" msgstr "нажмите, чтобы поÑмотреть недавно обновленные вопроÑÑ‹" -#: const/message_keys.py:24 const/message_keys.py:30 +#: const/message_keys.py:30 msgid "click to see the least answered questions" -msgstr "" -"нажмите чтобы увидеть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ чиÑлом ответов" +msgstr "нажмите чтобы увидеть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð¼ÐµÐ½ÑŒÑˆÐ¸Ð¼ чиÑлом ответов" -#: const/message_keys.py:25 const/message_keys.py:31 +#: const/message_keys.py:31 msgid "by answers" -msgstr "" -"ответы" +msgstr "ответы" -#: const/message_keys.py:26 const/message_keys.py:32 +#: const/message_keys.py:32 msgid "click to see the most answered questions" -msgstr "" -"нажмите чтобы проÑмотреть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом ответов" +msgstr "нажмите чтобы проÑмотреть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом ответов" -#: const/message_keys.py:27 const/message_keys.py:33 +#: const/message_keys.py:33 msgid "click to see least voted questions" -msgstr "" -"нажмите, чтобы проÑмотреть вопроÑÑ‹, за которые голоÑовали менее вÑего" +msgstr "нажмите, чтобы проÑмотреть вопроÑÑ‹, за которые голоÑовали менее вÑего" -#: const/message_keys.py:28 const/message_keys.py:34 +#: const/message_keys.py:34 msgid "by votes" -msgstr "" -"голоÑа" +msgstr "голоÑа" -#: const/message_keys.py:29 const/message_keys.py:35 +#: const/message_keys.py:35 msgid "click to see most voted questions" +msgstr "нажмите, чтобы проÑмотреть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом голоÑов" + +#: const/message_keys.py:36 models/tag.py:311 +msgid "interesting" +msgstr "интереÑные" + +#: const/message_keys.py:37 models/tag.py:312 +msgid "ignored" +msgstr "игнорируемые" + +#: const/message_keys.py:38 models/tag.py:313 +#, fuzzy +msgid "subscribed" +msgstr "ПодпиÑатьÑÑ" + +#: const/message_keys.py:39 templates/question_retag.html:58 +msgid "tags are required" +msgstr "Ñ‚Ñги обÑзательны" + +#: const/message_keys.py:41 +msgid "please use letters, numbers and characters \"-+.#\"" +msgstr "" + +#: const/message_keys.py:47 +msgid "" +"Sorry, your account appears to be blocked and you cannot make new posts " +"until this issue is resolved. Please contact the forum administrator to " +"reach a resolution." msgstr "" -"нажмите, чтобы проÑмотреть вопроÑÑ‹ Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом голоÑов" -#: deps/django_authopenid/backends.py:166 +#: const/message_keys.py:52 models/__init__.py:1074 +msgid "" +"Sorry, your account appears to be suspended and you cannot make new posts " +"until this issue is resolved. You can, however edit your existing posts. " +"Please contact the forum administrator to reach a resolution." +msgstr "" + +#: deps/django_authopenid/backends.py:99 msgid "" "Welcome! Please set email address (important!) in your profile and adjust " "screen name, if necessary." @@ -2507,101 +3325,104 @@ msgstr "" "ПриветÑтвуем! ПожалуйÑта добавьте email Ð°Ð´Ñ€ÐµÑ (Ñто важно!) в Ñвой профиль " "Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ измените отображаемое имÑ, еÑли Ñто необходимо." -#: deps/django_authopenid/forms.py:110 deps/django_authopenid/views.py:151 -#: deps/django_authopenid/views.py:142 +#: deps/django_authopenid/forms.py:112 deps/django_authopenid/views.py:205 msgid "i-names are not supported" msgstr "i-names не поддерживаютÑÑ" -#: deps/django_authopenid/forms.py:233 +#: deps/django_authopenid/forms.py:236 #, python-format msgid "Please enter your %(username_token)s" msgstr "ПожалуйÑта, введите Ваш %(username_token)s" -#: deps/django_authopenid/forms.py:259 +#: deps/django_authopenid/forms.py:262 msgid "Please, enter your user name" msgstr "ПожалуйÑта, введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: deps/django_authopenid/forms.py:263 +#: deps/django_authopenid/forms.py:266 msgid "Please, enter your password" msgstr "ПожалуйÑта, введите пароль" -#: deps/django_authopenid/forms.py:270 deps/django_authopenid/forms.py:274 +#: deps/django_authopenid/forms.py:273 deps/django_authopenid/forms.py:277 msgid "Please, enter your new password" msgstr "ПожалуйÑта, введите новый пароль" -#: deps/django_authopenid/forms.py:285 +#: deps/django_authopenid/forms.py:288 msgid "Passwords did not match" msgstr "Пароли не подходÑÑ‚" -#: deps/django_authopenid/forms.py:297 +#: deps/django_authopenid/forms.py:300 #, python-format msgid "Please choose password > %(len)s characters" -msgstr "" -"ПожалуйÑта, введите пароль > %(len)s Ñимволов" +msgstr "ПожалуйÑта, введите пароль > %(len)s Ñимволов" -#: deps/django_authopenid/forms.py:335 +#: deps/django_authopenid/forms.py:338 msgid "Current password" msgstr "Текущий пароль" -#: deps/django_authopenid/forms.py:346 +#: deps/django_authopenid/forms.py:349 msgid "" "Old password is incorrect. Please enter the correct " "password." msgstr "Старый пароль неверен. ПожалуйÑта, введите правильный пароль." -#: deps/django_authopenid/forms.py:399 +#: deps/django_authopenid/forms.py:402 msgid "Sorry, we don't have this email address in the database" msgstr "Извините, но Ñтого адреÑа нет в нашей базе данных." -#: deps/django_authopenid/forms.py:435 +#: deps/django_authopenid/forms.py:441 msgid "Your user name (<i>required</i>)" msgstr "Ваше Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ <i>(обÑзательно)</i>" -#: deps/django_authopenid/forms.py:450 -msgid "Incorrect username." -msgstr "Ðеправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." +#: deps/django_authopenid/forms.py:458 +msgid "sorry, there is no such user name" +msgstr "к Ñожалению, Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем нет" -#: deps/django_authopenid/urls.py:9 deps/django_authopenid/urls.py:12 -#: deps/django_authopenid/urls.py:15 setup_templates/settings.py:203 -#: setup_templates/settings.py:210 +#: deps/django_authopenid/urls.py:14 deps/django_authopenid/urls.py:20 +#: deps/django_authopenid/urls.py:23 setup_templates/settings.py:227 msgid "signin/" msgstr "vhod/" -#: deps/django_authopenid/urls.py:10 +#: deps/django_authopenid/urls.py:15 +#, fuzzy +msgid "widget/signin/" +msgstr "widgets/" + +#: deps/django_authopenid/urls.py:18 msgid "signout/" msgstr "vyhod/" -#: deps/django_authopenid/urls.py:12 -msgid "complete/" -msgstr "zavershaem/" - -#: deps/django_authopenid/urls.py:15 +#: deps/django_authopenid/urls.py:23 msgid "complete-oauth/" msgstr "zavershaem-oauth/" -#: deps/django_authopenid/urls.py:19 +#: deps/django_authopenid/urls.py:32 msgid "register/" msgstr "registraciya/" -#: deps/django_authopenid/urls.py:21 +#: deps/django_authopenid/urls.py:34 msgid "signup/" msgstr "noviy-account/" -#: deps/django_authopenid/urls.py:25 +#: deps/django_authopenid/urls.py:38 msgid "logout/" msgstr "logout/" -#: deps/django_authopenid/urls.py:30 +#: deps/django_authopenid/urls.py:43 msgid "recover/" msgstr "vosstanovleniye-accounta/" +#: deps/django_authopenid/urls.py:45 +#, fuzzy +msgid "verify-email/" +msgstr "проверить-ключ/" + #: deps/django_authopenid/util.py:378 #, python-format msgid "%(site)s user name and password" msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль на %(site)s" -#: deps/django_authopenid/util.py:384 -#: skins/common/templates/authopenid/signin.html:115 +#: deps/django_authopenid/util.py:384 templates/authopenid/signin.html:120 +#: templates/authopenid/widget_signin.html:120 msgid "Create a password-protected account" msgstr "Создайте новый аккаунт Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ и паролем" @@ -2609,91 +3430,95 @@ msgstr "Создайте новый аккаунт Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ и парол msgid "Change your password" msgstr "Сменить пароль" -#: deps/django_authopenid/util.py:473 +#: deps/django_authopenid/util.py:485 msgid "Sign in with Yahoo" msgstr "Вход через Yahoo" -#: deps/django_authopenid/util.py:480 +#: deps/django_authopenid/util.py:492 msgid "AOL screen name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² AOL" -#: deps/django_authopenid/util.py:488 +#: deps/django_authopenid/util.py:501 +#, fuzzy +msgid "Sign in with LaunchPad" +msgstr "Вход через Yahoo" + +#: deps/django_authopenid/util.py:508 msgid "OpenID url" msgstr "ÐÐ´Ñ€ÐµÑ Ð’Ð°ÑˆÐµÐ³Ð¾ OpenID" -#: deps/django_authopenid/util.py:517 +#: deps/django_authopenid/util.py:537 msgid "Flickr user name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð° Flickr" -#: deps/django_authopenid/util.py:525 +#: deps/django_authopenid/util.py:545 msgid "Technorati user name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² Technorati" -#: deps/django_authopenid/util.py:533 +#: deps/django_authopenid/util.py:553 msgid "WordPress blog name" msgstr "Ð˜Ð¼Ñ Ð±Ð»Ð¾Ð³Ð° на WordPress" -#: deps/django_authopenid/util.py:541 +#: deps/django_authopenid/util.py:561 msgid "Blogger blog name" msgstr "Ð˜Ð¼Ñ Ð±Ð»Ð¾Ð³Ð° на Blogger" -#: deps/django_authopenid/util.py:549 +#: deps/django_authopenid/util.py:569 msgid "LiveJournal blog name" msgstr "Ð˜Ð¼Ñ Ð±Ð»Ð¾Ð³Ð° на LiveJournal" -#: deps/django_authopenid/util.py:557 +#: deps/django_authopenid/util.py:577 msgid "ClaimID user name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² ClaimID" -#: deps/django_authopenid/util.py:565 +#: deps/django_authopenid/util.py:585 msgid "Vidoop user name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² Vidoop" -#: deps/django_authopenid/util.py:573 +#: deps/django_authopenid/util.py:593 msgid "Verisign user name" msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð² Verisign" -#: deps/django_authopenid/util.py:608 +#: deps/django_authopenid/util.py:628 #, python-format msgid "Change your %(provider)s password" msgstr "Сменить пароль в %(provider)s" -#: deps/django_authopenid/util.py:612 +#: deps/django_authopenid/util.py:632 #, python-format msgid "Click to see if your %(provider)s signin still works for %(site_name)s" msgstr "" "Проверьте, работает ли по-прежнему Ваш логин от %(provider)s на %(site_name)s" -#: deps/django_authopenid/util.py:621 +#: deps/django_authopenid/util.py:641 #, python-format msgid "Create password for %(provider)s" msgstr "Создать пароль Ð´Ð»Ñ %(provider)s" -#: deps/django_authopenid/util.py:625 +#: deps/django_authopenid/util.py:645 #, python-format msgid "Connect your %(provider)s account to %(site_name)s" msgstr "" "Соедините Ваш аккаунт на %(provider)s Ñ Ð’Ð°ÑˆÐµÐ¹ учетной запиÑью на " "%(site_name)s" -#: deps/django_authopenid/util.py:634 +#: deps/django_authopenid/util.py:654 #, python-format msgid "Signin with %(provider)s user name and password" msgstr "Заходите Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ паролем %(provider)s " -#: deps/django_authopenid/util.py:641 +#: deps/django_authopenid/util.py:661 #, python-format msgid "Sign in with your %(provider)s account" msgstr "Заходите через Ваш аккаунт на %(provider)s" -#: deps/django_authopenid/views.py:158 deps/django_authopenid/views.py:149 +#: deps/django_authopenid/views.py:212 #, python-format msgid "OpenID %(openid_url)s is invalid" msgstr "OpenID %(openid_url)s недейÑтвителен" -#: deps/django_authopenid/views.py:270 deps/django_authopenid/views.py:416 -#: deps/django_authopenid/views.py:444 deps/django_authopenid/views.py:261 -#: deps/django_authopenid/views.py:408 deps/django_authopenid/views.py:436 +#: deps/django_authopenid/views.py:390 deps/django_authopenid/views.py:567 +#: deps/django_authopenid/views.py:582 #, python-format msgid "" "Unfortunately, there was some problem when connecting to %(provider)s, " @@ -2702,108 +3527,116 @@ msgstr "" "К Ñожалению, возникла проблема при Ñоединении Ñ %(provider)s, пожалуйÑта " "попробуйте ещё раз или зайдите через другого провайдера" -#: deps/django_authopenid/views.py:366 deps/django_authopenid/views.py:358 +#: deps/django_authopenid/views.py:519 msgid "Your new password saved" msgstr "Ваш новый пароль Ñохранен" -#: deps/django_authopenid/views.py:462 +#: deps/django_authopenid/views.py:612 msgid "The login password combination was not correct" msgstr "ÐšÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð±Ñ‹Ð»Ð° неверной" -#: deps/django_authopenid/views.py:574 deps/django_authopenid/views.py:564 +#: deps/django_authopenid/views.py:716 msgid "Please click any of the icons below to sign in" msgstr "Введите Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль" -#: deps/django_authopenid/views.py:576 deps/django_authopenid/views.py:566 +#: deps/django_authopenid/views.py:718 msgid "Account recovery email sent" msgstr "Email Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð° выÑлан" -#: deps/django_authopenid/views.py:579 deps/django_authopenid/views.py:569 +#: deps/django_authopenid/views.py:721 msgid "Please add one or more login methods." msgstr "" "ПожалуйÑта, добавьте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один поÑтоÑнный метод Ð´Ð»Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ð¸. Иметь " "два или больше методов тоже можно." -#: deps/django_authopenid/views.py:581 deps/django_authopenid/views.py:571 +#: deps/django_authopenid/views.py:723 msgid "If you wish, please add, remove or re-validate your login methods" msgstr "ЗдеÑÑŒ можно изменить пароль и проверить текущие методы авторизации" -#: deps/django_authopenid/views.py:583 deps/django_authopenid/views.py:573 +#: deps/django_authopenid/views.py:725 msgid "Please wait a second! Your account is recovered, but ..." msgstr "" "ПожалуйÑта, подождите Ñекунду! Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ воÑÑтанавлена, но ..." -#: deps/django_authopenid/views.py:585 deps/django_authopenid/views.py:575 +#: deps/django_authopenid/views.py:727 msgid "Sorry, this account recovery key has expired or is invalid" msgstr "К Ñожалению, Ñтот ключ воÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ñтек или не ÑвлÑетÑÑ Ð²ÐµÑ€Ð½Ñ‹Ð¼" -#: deps/django_authopenid/views.py:658 deps/django_authopenid/views.py:648 +#: deps/django_authopenid/views.py:800 #, python-format msgid "Login method %(provider_name)s does not exist" msgstr "Метод входа %(provider_name) s не ÑущеÑтвует" -#: deps/django_authopenid/views.py:664 deps/django_authopenid/views.py:654 +#: deps/django_authopenid/views.py:806 msgid "Oops, sorry - there was some error - please try again" msgstr "УпÑ, извините, произошла ошибка - пожалуйÑта, попробуйте ещё раз" -#: deps/django_authopenid/views.py:755 deps/django_authopenid/views.py:745 +#: deps/django_authopenid/views.py:881 +msgid "If you are trying to sign in to another account, please sign out first." +msgstr "" + +#: deps/django_authopenid/views.py:886 +#, fuzzy +msgid "Otherwise, please report the incident to the site administrator." +msgstr "пожалуйÑта Ñообщите об ошибке админиÑтратору Ñайта" + +#: deps/django_authopenid/views.py:917 #, python-format msgid "Your %(provider)s login works fine" msgstr "Вход при помощи %(provider)s работает отлично" -#: deps/django_authopenid/views.py:1066 deps/django_authopenid/views.py:1072 -#: deps/django_authopenid/views.py:1056 deps/django_authopenid/views.py:1062 -#, python-format -msgid "your email needs to be validated see %(details_url)s" +#: deps/django_authopenid/views.py:1109 +#, fuzzy +msgid "Sorry, registration failed. Please ask the site administrator for help." msgstr "" -"пожалуйÑта подтвердите ваш email, Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ (<a href=" -"\"%(details_url)s\">здеÑÑŒ</a>)" +"Ошибка при загрузке файла. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрацией Ñайта." -#: deps/django_authopenid/views.py:1093 deps/django_authopenid/views.py:1083 +#: deps/django_authopenid/views.py:1255 #, python-format msgid "Recover your %(site)s account" -msgstr "" -"ВоÑÑтановить ваш аккаунт на %(site)s" +msgstr "ВоÑÑтановить ваш аккаунт на %(site)s" -#: deps/django_authopenid/views.py:1163 deps/django_authopenid/views.py:1155 +#: deps/django_authopenid/views.py:1291 msgid "Please check your email and visit the enclosed link." msgstr "ПожалуйÑта, проверьте Ñвой email и пройдите по вложенной ÑÑылке." -#: deps/livesettings/models.py:101 deps/livesettings/models.py:140 +#: deps/group_messaging/models.py:356 +msgid "Re: " +msgstr "" + +#: deps/livesettings/models.py:107 deps/livesettings/models.py:153 msgid "Site" msgstr "Сайт" -#: deps/livesettings/values.py:69 +#: deps/livesettings/values.py:71 msgid "Main" msgstr "ГлавнаÑ" -#: deps/livesettings/values.py:127 deps/livesettings/values.py:128 +#: deps/livesettings/values.py:132 msgid "Base Settings" -msgstr "" -"ОÑновные наÑтройки" +msgstr "ОÑновные наÑтройки" -#: deps/livesettings/values.py:234 deps/livesettings/values.py:235 +#: deps/livesettings/values.py:243 msgid "Default value: \"\"" msgstr "Значение по умолчанию:\"\"" -#: deps/livesettings/values.py:241 deps/livesettings/values.py:242 +#: deps/livesettings/values.py:250 msgid "Default value: " msgstr "Значение по умолчанию:" -#: deps/livesettings/values.py:244 deps/livesettings/values.py:245 +#: deps/livesettings/values.py:253 #, python-format msgid "Default value: %s" msgstr "Значение по умолчанию: %s" -#: deps/livesettings/values.py:622 deps/livesettings/values.py:629 +#: deps/livesettings/values.py:640 #, python-format msgid "Allowed image file types are %(types)s" msgstr "ДопуÑтимые типы файлов изображений: %(types)s" #: deps/livesettings/templates/livesettings/_admin_site_views.html:4 msgid "Sites" -msgstr "" -"Сайты" +msgstr "Сайты" #: deps/livesettings/templates/livesettings/group_settings.html:11 #: deps/livesettings/templates/livesettings/site_settings.html:23 @@ -2812,11 +3645,10 @@ msgstr "ДокументациÑ" #: deps/livesettings/templates/livesettings/group_settings.html:11 #: deps/livesettings/templates/livesettings/site_settings.html:23 -#: skins/default/templates/authopenid/signin.html:117 -#: skins/common/templates/authopenid/signin.html:143 +#: templates/authopenid/signin.html:148 +#: templates/authopenid/widget_signin.html:148 msgid "Change password" -msgstr "" -"Изменить пароль" +msgstr "Изменить пароль" #: deps/livesettings/templates/livesettings/group_settings.html:11 #: deps/livesettings/templates/livesettings/site_settings.html:23 @@ -2830,25 +3662,20 @@ msgstr "ГлавнаÑ" #: deps/livesettings/templates/livesettings/group_settings.html:15 msgid "Edit Group Settings" -msgstr "" -"Редактировать наÑтройки групп" +msgstr "Редактировать наÑтройки групп" #: deps/livesettings/templates/livesettings/group_settings.html:22 #: deps/livesettings/templates/livesettings/site_settings.html:50 msgid "Please correct the error below." msgid_plural "Please correct the errors below." -msgstr[0] "" -"ПожалуйÑта иÑправте ошибку ниже." -msgstr[1] "" -"ПожалуйÑта иÑправте ошибки ниже." -msgstr[2] "" -"ПожалуйÑта иÑправте ошибки ниже." +msgstr[0] "ПожалуйÑта иÑправте ошибку ниже." +msgstr[1] "ПожалуйÑта иÑправте ошибки ниже." +msgstr[2] "ПожалуйÑта иÑправте ошибки ниже." #: deps/livesettings/templates/livesettings/group_settings.html:28 #, python-format msgid "Settings included in %(name)s." -msgstr "" -"ÐаÑтройки включены в %(name)s." +msgstr "ÐаÑтройки включены в %(name)s." #: deps/livesettings/templates/livesettings/group_settings.html:62 #: deps/livesettings/templates/livesettings/site_settings.html:97 @@ -2857,8 +3684,7 @@ msgstr "У Ð²Ð°Ñ Ð½ÐµÑ‚ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ñ Ð½Ð° изменение значе #: deps/livesettings/templates/livesettings/site_settings.html:27 msgid "Edit Site Settings" -msgstr "" -"Редактировать наÑтройки Ñайта" +msgstr "Редактировать наÑтройки Ñайта" #: deps/livesettings/templates/livesettings/site_settings.html:43 msgid "Livesettings are disabled for this site." @@ -2866,42 +3692,52 @@ msgstr "Livesettings отключены Ð´Ð»Ñ Ñтого Ñайта." #: deps/livesettings/templates/livesettings/site_settings.html:44 msgid "All configuration options must be edited in the site settings.py file" -msgstr "" -"Ð’Ñе параметры конфигурации должны быть изменены в файле settings.py" +msgstr "Ð’Ñе параметры конфигурации должны быть изменены в файле settings.py" #: deps/livesettings/templates/livesettings/site_settings.html:66 #, python-format msgid "Group settings: %(name)s" -msgstr "" -"ÐаÑтройки группы: %(name)s" +msgstr "ÐаÑтройки группы: %(name)s" #: deps/livesettings/templates/livesettings/site_settings.html:93 msgid "Uncollapse all" msgstr "Развернуть вÑе" -#: importers/stackexchange/management/commands/load_stackexchange.py:141 +#: importers/stackexchange/management/commands/load_stackexchange.py:150 msgid "Congratulations, you are now an Administrator" msgstr "ПоздравлÑем, теперь Ð’Ñ‹ админиÑтратор на нашем форуме" -#: utils/mail.py:147 +#: mail/__init__.py:183 +msgid "<p>To ask by email, please:</p>" +msgstr "" + +#: mail/__init__.py:185 +msgid "<li>Type title in the subject line</li>" +msgstr "" + +#: mail/__init__.py:188 +msgid "<li>Type details of your question into the email body</li>" +msgstr "" + +#: mail/__init__.py:191 +msgid "" +"<li>The beginning of the subject line can contain tags,\n" +"<em>enclosed in the square brackets</em> like so: [Tag1; Tag2]</li>" +msgstr "" + +#: mail/__init__.py:195 msgid "" -"<p>To ask by email, please:</p>\n" -"<ul>\n" -" <li>Format the subject line as: [Tag1; Tag2] Question title</li>\n" -" <li>Type details of your question into the email body</li>\n" -"</ul>\n" -"<p>Note that tags may consist of more than one word, and tags\n" -"may be separated by a semicolon or a comma</p>\n" +"<li>In the beginning of the subject add at least one tag\n" +"<em>enclosed in the brackets</em> like so: [Tag1; Tag2].</li>" msgstr "" -"<p>Чтобы задавать вопроÑÑ‹ по email, пожалуйÑта:</p>\n" -"<ul>\n" -" <li>Отформатируйте поле темы как: [ТÑг1; ТÑг2] Заголовок вопроÑа</li>\n" -" <li>Введите Ñодержимое Ñвоего вопроÑа в теле пиÑьма</li>\n" -"</ul>\n" -"<p>Учтите, что Ñ‚Ñги могут Ñодержать более одного Ñлова и могут быть отделены " -"друг-от-друга запÑтой или точкой Ñ Ð·Ð°Ð¿Ñтой</p>\n" -#: utils/mail.py:167 +#: mail/__init__.py:199 +msgid "" +"<p>Note that a tag may consist of more than one word, to separate\n" +"the tags, use a semicolon or a comma, for example, [One tag; Other tag]</p>" +msgstr "" + +#: mail/__init__.py:214 #, python-format msgid "" "<p>Sorry, there was an error posting your question please contact the " @@ -2910,7 +3746,7 @@ msgstr "" "<p>Извините, произошла ошибка при добавлении вашего вопроÑа, пожалуйÑта " "ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтратором Ñайта %(site)s</p>" -#: utils/mail.py:173 +#: mail/__init__.py:241 #, python-format msgid "" "<p>Sorry, in order to post questions on %(site)s by email, please <a href=" @@ -2919,7 +3755,7 @@ msgstr "" "<p>Извините, чтобы отправлÑÑ‚ÑŒ вопроÑÑ‹ на Ñайт %(site)s через E-mail, " "пожалуйÑта <a href=\"%(url)s\">Ñначала зарегиÑтрируйтеÑÑŒ</a></p>" -#: utils/mail.py:181 +#: mail/__init__.py:249 msgid "" "<p>Sorry, your question could not be posted due to insufficient privileges " "of your user account</p>" @@ -2927,12 +3763,33 @@ msgstr "" "<p>Извините, ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½ÐµÐ²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ добавить, поÑкольку у вашей учетной " "запиÑи недоÑтаточно прав</p>" -#: management/commands/send_accept_answer_reminders.py:58 +#: mail/lamson_handlers.py:158 +msgid "" +"You were replying to an email address unknown to the system or " +"you were replying from a different address from the one where " +"you received the notification." +msgstr "" + +#: mail/lamson_handlers.py:245 +#, fuzzy, python-format +msgid "Re: Welcome to %(site_name)s" +msgstr "ЗдравÑтвуйте %(username)s," + +#: mail/lamson_handlers.py:252 +msgid "Please reply to the welcome email without editing it" +msgstr "" + +#: mail/lamson_handlers.py:314 +#, python-format +msgid "Re: %s" +msgstr "" + +#: management/commands/send_accept_answer_reminders.py:60 #, python-format msgid "Accept the best answer for %(question_count)d of your questions" msgstr "ПринÑÑ‚ÑŒ лучший ответ Ð´Ð»Ñ %(question_count)d ваших вопроÑов" -#: management/commands/send_accept_answer_reminders.py:63 +#: management/commands/send_accept_answer_reminders.py:65 msgid "Please accept the best answer for this question:" msgstr "" "<span class='big strong'>ПожалуйÑта, ÑтарайтеÑÑŒ давать ответы по-ÑущеÑтву</" @@ -2942,7 +3799,7 @@ msgstr "" "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹. Кроме того, пожалуйÑта, <strong>не забывайте голоÑовать</" "strong> - Ñто дейÑтвительно помогает выбрать лучшие вопроÑÑ‹ и ответы!" -#: management/commands/send_accept_answer_reminders.py:65 +#: management/commands/send_accept_answer_reminders.py:67 msgid "Please accept the best answer for these questions:" msgstr "" "<span class='big strong'>ПожалуйÑта, ÑтарайтеÑÑŒ давать ответы по-ÑущеÑтву</" @@ -2952,7 +3809,6 @@ msgstr "" "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹. Кроме того, пожалуйÑта, <strong>не забывайте голоÑовать</" "strong> - Ñто дейÑтвительно помогает выбрать лучшие вопроÑÑ‹ и ответы!" -#: management/commands/send_email_alerts.py:411 #: management/commands/send_email_alerts.py:414 #, python-format msgid "%(question_count)d updated question about %(topics)s" @@ -2961,78 +3817,51 @@ msgstr[0] "%(question_count)d Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½ в %(topics)s" msgstr[1] "%(question_count)d вопроÑÑ‹ обновлены в %(topics)s" msgstr[2] "%(question_count)d вопроÑÑ‹ обновлены в %(topics)s" -#: management/commands/send_email_alerts.py:421 +#: management/commands/send_email_alerts.py:425 #, python-format -msgid "%(name)s, this is an update message header for %(num)d question" -msgid_plural "%(name)s, this is an update message header for %(num)d questions" -msgstr[0] "%(name)s, в Ñтом %(num)d вопроÑе еÑÑ‚ÑŒ новоÑти" -msgstr[1] "%(name)s, в Ñтих %(num)d вопроÑах еÑÑ‚ÑŒ новоÑти" -msgstr[2] "%(name)s, в Ñтих %(num)d вопроÑах еÑÑ‚ÑŒ новоÑти" +msgid "" +"<p>Dear %(name)s,</p><p>The following question has been updated " +"%(sitename)s</p>" +msgid_plural "" +"<p>Dear %(name)s,</p><p>The following %(num)d questions have been updated on " +"%(sitename)s:</p>" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" -#: management/commands/send_email_alerts.py:438 #: management/commands/send_email_alerts.py:449 msgid "new question" msgstr "новый вопроÑ" -#: management/commands/send_email_alerts.py:455 -msgid "" -"Please visit the askbot and see what's new! Could you spread the word about " -"it - can somebody you know help answering those questions or benefit from " -"posting one?" -msgstr "" -"ПожалуйÑта, зайдите на наш форум и поÑмотрите что еÑÑ‚ÑŒ нового. Может быть Ð’Ñ‹ " -"раÑÑкажете другим о нашем Ñайте или кто-нибудь из Ваших знакомых может " -"ответить на Ñти вопроÑÑ‹ или извлечь пользу из ответов?" - -#: management/commands/send_email_alerts.py:465 -msgid "" -"Your most frequent subscription setting is 'daily' on selected questions. If " -"you are receiving more than one email per dayplease tell about this issue to " -"the askbot administrator." -msgstr "" -"Ваша наиболее чаÑÑ‚Ð°Ñ Ð½Ð°Ñтройка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email - ежедневнаÑ. ЕÑли вы " -"получаете email чаще, пожалуйÑта, извеÑтите админиÑтратора форума." - -#: management/commands/send_email_alerts.py:471 -msgid "" -"Your most frequent subscription setting is 'weekly' if you are receiving " -"this email more than once a week please report this issue to the askbot " -"administrator." -msgstr "" -"Ваша наиболее чаÑÑ‚Ð°Ñ Ð½Ð°Ñтройка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email - еженедельнаÑ. ЕÑли вы " -"получаете email чаще, пожалуйÑта, извеÑтите админиÑтратора форума." - -#: management/commands/send_email_alerts.py:477 -msgid "" -"There is a chance that you may be receiving links seen before - due to a " -"technicality that will eventually go away. " -msgstr "" -"Ðе иÑключено что Ð’Ñ‹ можете получить ÑÑылки, которые видели раньше. Ðто " -"иÑчезнет ÑпуÑÑ‚Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ðµ времÑ." - -#: management/commands/send_email_alerts.py:490 +#: management/commands/send_email_alerts.py:474 #, python-format msgid "" -"go to %(email_settings_link)s to change frequency of email updates or " -"%(admin_email)s administrator" +"<p>Please remember that you can always <a href=\"%(email_settings_link)s" +"\">adjust</a> frequency of the email updates or turn them off entirely.<br/" +">If you believe that this message was sent in an error, please email about " +"it the forum administrator at %(admin_email)s.</p><p>Sincerely,</p><p>Your " +"friendly %(sitename)s server.</p>" msgstr "" -"<a href=\"%(email_settings_link)s\">ЗдеÑÑŒ</a> Ð’Ñ‹ можете изменить чаÑтоту " -"раÑÑылки. ЕÑли возникнет необходимоÑÑ‚ÑŒ - пожалуйÑта ÑвÑжитеÑÑŒ Ñ " -"админиÑтратором форума по %(admin_email)s." -#: management/commands/send_unanswered_question_reminders.py:56 -#: management/commands/send_unanswered_question_reminders.py:60 +#: management/commands/send_unanswered_question_reminders.py:66 #, python-format msgid "%(question_count)d unanswered question about %(topics)s" msgid_plural "%(question_count)d unanswered questions about %(topics)s" -msgstr[0] "" -"%(question_count)d неотвеченный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ð° тему %(topics)s" -msgstr[1] "" -"%(question_count)d неотвеченных вопроÑа на тему %(topics)s" -msgstr[2] "" -"%(question_count)d неотвеченных вопроÑов на тему %(topics)s" +msgstr[0] "%(question_count)d неотвеченный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð½Ð° тему %(topics)s" +msgstr[1] "%(question_count)d неотвеченных вопроÑа на тему %(topics)s" +msgstr[2] "%(question_count)d неотвеченных вопроÑов на тему %(topics)s" -#: models/__init__.py:316 models/__init__.py:320 +#: middleware/forum_mode.py:63 +#, python-format +msgid "Please log in to use %s" +msgstr "ПожалуйÑта войдите чтобы иÑпользовать %s" + +#: models/__init__.py:518 +#, fuzzy +msgid "Sorry, this operation is not allowed" +msgstr "Извините, что-то не здеÑÑŒ..." + +#: models/__init__.py:568 msgid "" "Sorry, you cannot accept or unaccept best answers because your account is " "blocked" @@ -3040,7 +3869,7 @@ msgstr "" "К Ñожалению, вы не можете принÑÑ‚ÑŒ или не принÑÑ‚ÑŒ лучший ответ, потому что " "ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована" -#: models/__init__.py:320 models/__init__.py:324 +#: models/__init__.py:572 msgid "" "Sorry, you cannot accept or unaccept best answers because your account is " "suspended" @@ -3048,7 +3877,7 @@ msgstr "" "К Ñожалению, вы не можете принÑÑ‚ÑŒ или не принÑÑ‚ÑŒ лучший ответ, потому что " "ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена" -#: models/__init__.py:333 models/__init__.py:337 +#: models/__init__.py:586 #, python-format msgid "" ">%(points)s points required to accept or unaccept your own answer to your " @@ -3057,61 +3886,67 @@ msgstr "" ">%(points)s очков необходимо чтобы принÑÑ‚ÑŒ или отклонить ваш ÑобÑтвенный " "ответ на ваш ÑобÑтвенный вопроÑ" -#: models/__init__.py:347 +#: models/__init__.py:610 +#, python-format +msgid "" +"Sorry, you will be able to accept this answer only after %(will_be_able_at)s" +msgstr "" +"Извините, вы Ñможете принÑÑ‚ÑŒ Ñтот ответ только через %(will_be_able_at)s" + +#: models/__init__.py:619 #, python-format msgid "" -"Sorry, only original author of the question - %(username)s - can accept or " -"unaccept the best answer" +"Sorry, only moderators or original author of the question - %(username)s - " +"can accept or unaccept the best answer" msgstr "" -"К Ñожалению, только автор вопроÑа - %(username)s - может принÑÑ‚ÑŒ лучший ответ" +"Извините, только модераторы или автор вопроÑа - %(username)s - могут " +"принимать или отклонÑÑ‚ÑŒ лучший ответ" -#: models/__init__.py:375 -msgid "cannot vote for own posts" +#: models/__init__.py:642 +msgid "Sorry, you cannot vote for your own posts" msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð³Ð¾Ð»Ð¾Ñовать за ÑобÑтвенные ÑообщениÑ" -#: models/__init__.py:378 models/__init__.py:394 +#: models/__init__.py:646 msgid "Sorry your account appears to be blocked " msgstr "К Ñожалению, ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована" -#: models/__init__.py:383 models/__init__.py:399 +#: models/__init__.py:651 msgid "Sorry your account appears to be suspended " msgstr "К Ñожалению, ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена" -#: models/__init__.py:393 models/__init__.py:409 +#: models/__init__.py:661 #, python-format msgid ">%(points)s points required to upvote" msgstr "Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ñ€ÐµÐ¹Ñ‚Ð¸Ð½Ð³Ð° требуетÑÑ Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ %(points)s баллов " -#: models/__init__.py:399 models/__init__.py:415 +#: models/__init__.py:667 #, python-format msgid ">%(points)s points required to downvote" msgstr "Ð´Ð»Ñ Ð¿Ð¾Ð½Ð¸Ð¶ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¹Ñ‚Ð¸Ð½Ð³Ð° требуетÑÑ Ð¼Ð¸Ð½Ð¸Ð¼ÑƒÐ¼ %(points)s баллов" -#: models/__init__.py:414 models/__init__.py:430 +#: models/__init__.py:682 msgid "Sorry, blocked users cannot upload files" msgstr "К Ñожалению, заблокированные пользователи не могут загружать файлы" -#: models/__init__.py:415 models/__init__.py:431 +#: models/__init__.py:683 msgid "Sorry, suspended users cannot upload files" msgstr "" "К Ñожалению, временно блокированные пользователи не могут загружать файлы" -#: models/__init__.py:417 +#: models/__init__.py:685 #, python-format -msgid "" -"uploading images is limited to users with >%(min_rep)s reputation points" +msgid "sorry, file uploading requires karma >%(min_rep)s" msgstr "" -"загрузка изображений доÑтупна только пользователÑм Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸ÐµÐ¹ > %(min_rep)s" -#: models/__init__.py:436 models/__init__.py:503 models/__init__.py:918 -msgid "blocked users cannot post" -msgstr "заблокированные пользователи не могут размещать ÑообщениÑ" +#: models/__init__.py:704 +msgid "Could not post, because your karma is insufficient to publish links" +msgstr "" -#: models/__init__.py:437 models/__init__.py:921 -msgid "suspended users cannot post" -msgstr "временно заблокированные пользователи не могут размещать ÑообщениÑ" +#: models/__init__.py:730 +msgid "Sorry, you already gave an answer, please edit it instead." +msgstr "" -#: models/__init__.py:464 models/__init__.py:482 +#: models/__init__.py:754 #, python-format msgid "" "Sorry, comments (except the last one) are editable only within %(minutes)s " @@ -3129,19 +3964,19 @@ msgstr[2] "" "Извините, комментарии (кроме поÑледнего) можно редактировать только " "%(minutes)s минут поÑле добавлениÑ" -#: models/__init__.py:476 models/__init__.py:494 +#: models/__init__.py:766 msgid "Sorry, but only post owners or moderators can edit comments" msgstr "" "К Ñожалению, только владелец или модератор может редактировать комментарий" -#: models/__init__.py:489 models/__init__.py:519 +#: models/__init__.py:791 msgid "" "Sorry, since your account is suspended you can comment only your own posts" msgstr "" "К Ñожалению, так как ваш аккаунт приоÑтановлен вы можете комментировать " "только Ñвои ÑобÑтвенные ÑообщениÑ" -#: models/__init__.py:493 models/__init__.py:523 +#: models/__init__.py:795 #, python-format msgid "" "Sorry, to comment any post a minimum reputation of %(min_rep)s points is " @@ -3151,7 +3986,7 @@ msgstr "" "баллов репутации. Ð’Ñ‹ можете комментировать только Ñвои ÑобÑтвенные ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ " "и ответы на ваши вопроÑÑ‹" -#: models/__init__.py:521 models/__init__.py:553 +#: models/__init__.py:825 msgid "" "This post has been deleted and can be seen only by post owners, site " "administrators and moderators" @@ -3159,7 +3994,7 @@ msgstr "" "Ðтот поÑÑ‚ был удален, его может увидеть только владелец, админиÑтраторы " "Ñайта и модераторы" -#: models/__init__.py:538 models/__init__.py:570 +#: models/__init__.py:842 msgid "" "Sorry, only moderators, site administrators and post owners can edit deleted " "posts" @@ -3167,19 +4002,19 @@ msgstr "" "Извините, только модераторы, админиÑтраторы Ñайта и владельцы ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ " "могут редактировать удаленные ÑообщениÑ" -#: models/__init__.py:553 models/__init__.py:585 +#: models/__init__.py:857 msgid "Sorry, since your account is blocked you cannot edit posts" msgstr "" "К Ñожалению, так как Ваш ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете " "редактировать ÑообщениÑ" -#: models/__init__.py:557 models/__init__.py:589 +#: models/__init__.py:861 msgid "Sorry, since your account is suspended you can edit only your own posts" msgstr "" "К Ñожалению, так как ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена вы можете " "редактировать только ваши ÑобÑтвенные ÑообщениÑ" -#: models/__init__.py:562 models/__init__.py:594 +#: models/__init__.py:866 #, python-format msgid "" "Sorry, to edit wiki posts, a minimum reputation of %(min_rep)s is required" @@ -3187,7 +4022,7 @@ msgstr "" "К Ñожалению, Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¸ÐºÐ¸ Ñообщений, требуетÑÑ %(min_rep)s баллов " "кармы" -#: models/__init__.py:569 models/__init__.py:601 +#: models/__init__.py:873 #, python-format msgid "" "Sorry, to edit other people's posts, a minimum reputation of %(min_rep)s is " @@ -3196,7 +4031,7 @@ msgstr "" "К Ñожалению, Ð´Ð»Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ñ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… пользователей, требуетÑÑ " "%(min_rep)s балов кармы" -#: models/__init__.py:632 models/__init__.py:664 +#: models/__init__.py:936 msgid "" "Sorry, cannot delete your question since it has an upvoted answer posted by " "someone else" @@ -3213,41 +4048,41 @@ msgstr[2] "" "К Ñожалению, Ð’Ñ‹ не может удалить ваш вопроÑ, поÑкольку на него ответили " "другие пользователи и их ответы получили положительные голоÑа" -#: models/__init__.py:647 models/__init__.py:679 +#: models/__init__.py:951 msgid "Sorry, since your account is blocked you cannot delete posts" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете удалÑÑ‚ÑŒ " "ÑообщениÑ" -#: models/__init__.py:651 models/__init__.py:683 +#: models/__init__.py:955 msgid "" "Sorry, since your account is suspended you can delete only your own posts" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена Ð’Ñ‹ не можете удалÑÑ‚ÑŒ " "ÑообщениÑ" -#: models/__init__.py:655 models/__init__.py:687 -#, python-format +#: models/__init__.py:959 +#, fuzzy, python-format msgid "" -"Sorry, to deleted other people' posts, a minimum reputation of %(min_rep)s " +"Sorry, to delete other people's posts, a minimum reputation of %(min_rep)s " "is required" msgstr "" "К Ñожалению, Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñообщений других пользователей, требуетÑÑ " "%(min_rep)s балов кармы" -#: models/__init__.py:675 models/__init__.py:707 +#: models/__init__.py:979 msgid "Sorry, since your account is blocked you cannot close questions" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована вы не можете закрыть " "вопроÑÑ‹" -#: models/__init__.py:679 models/__init__.py:711 +#: models/__init__.py:983 msgid "Sorry, since your account is suspended you cannot close questions" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена вы не можете закрыть " "вопроÑÑ‹" -#: models/__init__.py:683 models/__init__.py:715 +#: models/__init__.py:987 #, python-format msgid "" "Sorry, to close other people' posts, a minimum reputation of %(min_rep)s is " @@ -3256,14 +4091,14 @@ msgstr "" "К Ñожалению, Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¸Ñ… пользователей, требуетÑÑ " "%(min_rep)s балов кармы" -#: models/__init__.py:692 models/__init__.py:724 +#: models/__init__.py:996 #, python-format msgid "" "Sorry, to close own question a minimum reputation of %(min_rep)s is required" msgstr "" "К Ñожалению, Ð´Ð»Ñ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñвоего вопроÑа, требуетÑÑ %(min_rep)s балов кармы" -#: models/__init__.py:716 models/__init__.py:748 +#: models/__init__.py:1022 #, python-format msgid "" "Sorry, only administrators, moderators or post owners with reputation > " @@ -3272,7 +4107,7 @@ msgstr "" "К Ñожалению, только админиÑтраторы, модераторы или владельцы Ñ ÐºÐ°Ñ€Ð¼Ð¾Ð¹ >" "%(min_rep)s может открыть вопроÑ" -#: models/__init__.py:722 models/__init__.py:754 +#: models/__init__.py:1028 #, python-format msgid "" "Sorry, to reopen own question a minimum reputation of %(min_rep)s is required" @@ -3280,29 +4115,81 @@ msgstr "" "К Ñожалению, чтобы вновь открыть ÑобÑтвенный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ÑÑ %(min_rep)s " "баллов кармы" -#: models/__init__.py:742 -msgid "cannot flag message as offensive twice" -msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð¼ÐµÑ‚Ð¸Ñ‚ÑŒ Ñообщение как оÑкорбительное дважды" +#: models/__init__.py:1033 +#, fuzzy +msgid "Sorry, you cannot reopen questions because your account is blocked" +msgstr "" +"К Ñожалению, вы не можете принÑÑ‚ÑŒ или не принÑÑ‚ÑŒ лучший ответ, потому что " +"ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована" -#: models/__init__.py:747 -msgid "blocked users cannot flag posts" -msgstr "заблокированные пользователи не могут помечать ÑообщениÑ" +#: models/__init__.py:1038 +#, fuzzy +msgid "Sorry, you cannot reopen questions because your account is suspended" +msgstr "" +"К Ñожалению, вы не можете принÑÑ‚ÑŒ или не принÑÑ‚ÑŒ лучший ответ, потому что " +"ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена" -#: models/__init__.py:749 -msgid "suspended users cannot flag posts" -msgstr "приоÑтановленные пользователи не могут помечать ÑообщениÑ" +#: models/__init__.py:1061 +msgid "You have flagged this question before and cannot do it more than once" +msgstr "" +"Ð’Ñ‹ уже отметили Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐºÐ°Ðº неумеÑтный и повторÑÑ‚ÑŒ Ñту операцию не " +"разрешаетÑÑ." -#: models/__init__.py:751 +#: models/__init__.py:1069 +msgid "Sorry, since your account is blocked you cannot flag posts as offensive" +msgstr "" +"К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете " +"ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº неумеÑтные" + +#: models/__init__.py:1080 #, python-format -msgid "need > %(min_rep)s points to flag spam" -msgstr "необходимо > %(min_rep)s баллов чтобы отметить как Ñпам" +msgid "" +"Sorry, to flag posts as offensive a minimum reputation of %(min_rep)s is " +"required" +msgstr "К Ñожалению, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ³Ð¾Ð² требуетÑÑ %(min_rep)s баллов кармы" + +#: models/__init__.py:1101 +#, python-format +msgid "" +"Sorry, you have exhausted the maximum number of %(max_flags_per_day)s " +"offensive flags per day." +msgstr "" + +#: models/__init__.py:1113 +msgid "cannot remove non-existing flag" +msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ неÑущеÑтвующий флаг" + +#: models/__init__.py:1119 +msgid "Sorry, since your account is blocked you cannot remove flags" +msgstr "" +"К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете удалÑÑ‚ÑŒ " +"отметки о неумеÑтном Ñодержании." + +#: models/__init__.py:1123 +msgid "" +"Sorry, your account appears to be suspended and you cannot remove flags. " +"Please contact the forum administrator to reach a resolution." +msgstr "" -#: models/__init__.py:770 +#: models/__init__.py:1129 #, python-format -msgid "%(max_flags_per_day)s exceeded" -msgstr "%(max_flags_per_day)s превышен" +msgid "Sorry, to flag posts a minimum reputation of %(min_rep)d is required" +msgid_plural "" +"Sorry, to flag posts a minimum reputation of %(min_rep)d is required" +msgstr[0] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d балл кармы" +msgstr[1] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d балла кармы" +msgstr[2] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d баллов кармы" + +#: models/__init__.py:1148 +msgid "you don't have the permission to remove all flags" +msgstr "у Ð²Ð°Ñ Ð½ÐµÑ‚Ñƒ прав чтобы удалить вÑе обжалованные ÑообщениÑ" -#: models/__init__.py:785 models/__init__.py:887 +#: models/__init__.py:1149 +#, fuzzy +msgid "no flags for this entry" +msgstr "без заметок на Ñту запиÑÑŒ" + +#: models/__init__.py:1173 msgid "" "Sorry, only question owners, site administrators and moderators can retag " "deleted questions" @@ -3310,64 +4197,62 @@ msgstr "" "К Ñожалению, только владельцы, админиÑтраторы Ñайта и модераторы могут " "менÑÑ‚ÑŒ теги к удаленным вопроÑам" -#: models/__init__.py:792 models/__init__.py:894 +#: models/__init__.py:1180 msgid "Sorry, since your account is blocked you cannot retag questions" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована вы не можете поменÑÑ‚ÑŒ " "теги вопроÑа " -#: models/__init__.py:796 models/__init__.py:898 +#: models/__init__.py:1184 msgid "" "Sorry, since your account is suspended you can retag only your own questions" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена вы можете менÑÑ‚ÑŒ " "теги только на Ñвои вопроÑÑ‹" -#: models/__init__.py:800 models/__init__.py:902 +#: models/__init__.py:1188 #, python-format msgid "" "Sorry, to retag questions a minimum reputation of %(min_rep)s is required" msgstr "К Ñожалению, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ³Ð¾Ð² требуетÑÑ %(min_rep)s баллов кармы" -#: models/__init__.py:819 models/__init__.py:921 +#: models/__init__.py:1207 msgid "Sorry, since your account is blocked you cannot delete comment" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете удалÑÑ‚ÑŒ " "комментарий" -#: models/__init__.py:823 models/__init__.py:925 +#: models/__init__.py:1211 msgid "" "Sorry, since your account is suspended you can delete only your own comments" msgstr "" "К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ приоÑтановлена вы можете удалÑÑ‚ÑŒ " "только ваши ÑобÑтвенные комментарии" -#: models/__init__.py:827 models/__init__.py:929 +#: models/__init__.py:1215 #, python-format msgid "Sorry, to delete comments reputation of %(min_rep)s is required" msgstr "" "К Ñожалению, Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸ÐµÐ² требуетÑÑ %(min_rep)s баллов репутации" -#: models/__init__.py:850 -msgid "cannot revoke old vote" -msgstr "Ð³Ð¾Ð»Ð¾Ñ Ð½Ðµ может быть отозван" +#: models/__init__.py:1239 +msgid "sorry, but older votes cannot be revoked" +msgstr "" -#: models/__init__.py:1325 utils/functions.py:70 models/__init__.py:1469 -#: utils/functions.py:78 +#: models/__init__.py:1922 utils/functions.py:97 #, python-format msgid "on %(date)s" msgstr "%(date)s" -#: models/__init__.py:1327 models/__init__.py:1471 +#: models/__init__.py:1924 msgid "in two days" -msgstr "" -"поÑлезавтра" +msgstr "поÑлезавтра" -#: models/__init__.py:1329 models/__init__.py:1473 +#: models/__init__.py:1926 msgid "tomorrow" msgstr "завтра" -#: models/__init__.py:1331 models/__init__.py:1475 +#: models/__init__.py:1928 #, python-format msgid "in %(hr)d hour" msgid_plural "in %(hr)d hours" @@ -3375,18 +4260,15 @@ msgstr[0] "через %(hr)d чаÑ" msgstr[1] "через %(hr)d чаÑа" msgstr[2] "через %(hr)d чаÑов" -#: models/__init__.py:1333 models/__init__.py:1477 +#: models/__init__.py:1930 #, python-format msgid "in %(min)d min" msgid_plural "in %(min)d mins" -msgstr[0] "" -"через %(min)d минуту" -msgstr[1] "" -"через %(min)d минуты" -msgstr[2] "" -"через %(min)d минут" +msgstr[0] "через %(min)d минуту" +msgstr[1] "через %(min)d минуты" +msgstr[2] "через %(min)d минут" -#: models/__init__.py:1334 models/__init__.py:1478 +#: models/__init__.py:1931 #, python-format msgid "%(days)d day" msgid_plural "%(days)d days" @@ -3394,7 +4276,7 @@ msgstr[0] "%(days)d день" msgstr[1] "%(days)d днÑ" msgstr[2] "%(days)d дней" -#: models/__init__.py:1336 models/__init__.py:1480 +#: models/__init__.py:1933 #, python-format msgid "" "New users must wait %(days)s before answering their own question. You can " @@ -3404,103 +4286,125 @@ msgstr "" "возможноÑÑ‚ÑŒ ответить на Ñвой ÑобÑтвенный вопроÑ. Ð’Ñ‹ можете ответить через " "%(left)s" -#: models/__init__.py:1502 models/__init__.py:1653 -#: skins/default/templates/feedback_email.txt:9 +#: models/__init__.py:2121 templates/email/feedback_email.txt:9 msgid "Anonymous" -msgstr "" -"Ðноним" +msgstr "Ðноним" -#: models/__init__.py:1598 views/users.py:435 models/__init__.py:1749 +#: models/__init__.py:2225 msgid "Site Adminstrator" msgstr "ÐдминиÑтратор Ñайта" -#: models/__init__.py:1600 views/users.py:437 models/__init__.py:1751 +#: models/__init__.py:2227 msgid "Forum Moderator" msgstr "С уважением, Модератор форума" -#: models/__init__.py:1602 views/users.py:439 models/__init__.py:1753 +#: models/__init__.py:2229 msgid "Suspended User" msgstr "ПриоÑтановленный пользователь " -#: models/__init__.py:1604 views/users.py:441 models/__init__.py:1755 +#: models/__init__.py:2231 msgid "Blocked User" msgstr "Заблокированный пользователь" -#: models/__init__.py:1606 views/users.py:443 models/__init__.py:1757 +#: models/__init__.py:2233 msgid "Registered User" msgstr "ЗарегиÑтрированный пользователь" -#: models/__init__.py:1608 models/__init__.py:1759 +#: models/__init__.py:2235 msgid "Watched User" msgstr "Видный пользователь" -#: models/__init__.py:1610 models/__init__.py:1761 +#: models/__init__.py:2237 msgid "Approved User" -msgstr "" -"Утвержденный Пользователь" +msgstr "Утвержденный Пользователь" -#: models/__init__.py:1719 models/__init__.py:1870 +#: models/__init__.py:2419 #, python-format msgid "%(username)s karma is %(reputation)s" -msgstr "" -"Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s равна %(reputation)s" +msgstr "Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s равна %(reputation)s" -#: models/__init__.py:1729 models/__init__.py:1880 +#: models/__init__.py:2429 #, python-format msgid "one gold badge" msgid_plural "%(count)d gold badges" -msgstr[0] "" -"%(count)d Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" -msgstr[1] "" -"%(count)d золотых наград" -msgstr[2] "" -"%(count)d золотых наград" +msgstr[0] "%(count)d Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" +msgstr[1] "%(count)d золотых наград" +msgstr[2] "%(count)d золотых наград" -#: models/__init__.py:1736 models/__init__.py:1887 +#: models/__init__.py:2436 #, python-format msgid "one silver badge" msgid_plural "%(count)d silver badges" -msgstr[0] "" -"%(count)d ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" -msgstr[1] "" -"%(count)d ÑеребрÑных наград" -msgstr[2] "" -"%(count)d ÑеребрÑных медалей" +msgstr[0] "%(count)d ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" +msgstr[1] "%(count)d ÑеребрÑных наград" +msgstr[2] "%(count)d ÑеребрÑных медалей" -#: models/__init__.py:1743 models/__init__.py:1894 +#: models/__init__.py:2443 #, python-format msgid "one bronze badge" msgid_plural "%(count)d bronze badges" -msgstr[0] "" -"%(count)d Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" -msgstr[1] -"%(count)d бронзовых медалей" -msgstr[2] -"%(count)d бронзовых медалей" +msgstr[0] "%(count)d Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°" +msgstr[1] "%(count)d бронзовых медалей" +msgstr[2] "%(count)d бронзовых медалей" -#: models/__init__.py:1754 models/__init__.py:1905 +#: models/__init__.py:2454 #, python-format msgid "%(item1)s and %(item2)s" msgstr "%(item1)s и %(item2)s" -#: models/__init__.py:1758 models/__init__.py:1909 +#: models/__init__.py:2458 #, python-format msgid "%(user)s has %(badges)s" +msgstr "У Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user)s - %(badges)s наград" + +#: models/__init__.py:2591 +#, python-format +msgid "At least %d karma point is required to post links" +msgid_plural "At least %d karma points is required to post links" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: models/__init__.py:3070 +#, fuzzy, python-format +msgid "%(user)s shared a %(post_link)s." +msgstr "У Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user)s - %(badges)s наград" + +#: models/__init__.py:3073 models/__init__.py:3083 +#, fuzzy, python-format +msgid "%(user)s edited a %(post_link)s." +msgstr "%(url)s - вебÑайт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" + +#: models/__init__.py:3075 +#, python-format +msgid "%(user)s posted a %(post_link)s" msgstr "" -"У Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user)s - %(badges)s наград" -#: models/__init__.py:2165 models/__init__.py:2171 models/__init__.py:2176 -#: models/__init__.py:2181 +#: models/__init__.py:3078 +#, fuzzy, python-format +msgid "%(user)s edited an %(post_link)s." +msgstr "%(url)s - вебÑайт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" + +#: models/__init__.py:3080 #, python-format -msgid "Re: \"%(title)s\"" -msgstr "Re: \"%(title)s\"" +msgid "%(user)s posted an %(post_link)s." +msgstr "" -#: models/__init__.py:2186 models/__init__.py:2191 +#: models/__init__.py:3085 #, python-format -msgid "Question: \"%(title)s\"" -msgstr "ВопроÑ: \"%(title)s\"" +msgid "%(user)s posted a %(post_link)s." +msgstr "" + +#: models/__init__.py:3102 +msgid "To reply, PLEASE WRITE ABOVE THIS LINE." +msgstr "" + +#: models/__init__.py:3134 +#, python-format +msgid "\"%(title)s\"" +msgstr "\"%(title)s\"" -#: models/__init__.py:2372 models/__init__.py:2542 +#: models/__init__.py:3286 #, python-format msgid "" "Congratulations, you have received a badge '%(badge_name)s'. Check out <a " @@ -3509,23 +4413,14 @@ msgstr "" "ПоздравлÑем, вы получили '%(badge_name)s'. Проверьте Ñвой <a href=" "\"%(user_profile)s\">профиль</a>." -#: models/__init__.py:2551 views/commands.py:395 models/__init__.py:2745 -#: views/commands.py:460 -msgid "Your tag subscription was saved, thanks!" -msgstr "" -"Ваша подпиÑка на Ñ‚Ñги была Ñохранена" - -#: models/answer.py:105 models/post.py:1087 -msgid "" -"Sorry, the answer you are looking for is no longer available, because the " -"parent question has been removed" -msgstr "" -"К Ñожалению, ответ который вы ищете больше не доÑтупен, потому что Ð²Ð¾Ð¿Ñ€Ð¾Ñ " -"был удален" +#: models/__init__.py:3556 +#, fuzzy, python-format +msgid "Welcome to %(site_name)s" +msgstr "ЗдравÑтвуйте %(username)s," -#: models/answer.py:112 models/post.py:1094 -msgid "Sorry, this answer has been removed and is no longer accessible" -msgstr "К Ñожалению, Ñтот ответ был удален и больше не доÑтупен" +#: models/__init__.py:3577 views/commands.py:685 +msgid "Your tag subscription was saved, thanks!" +msgstr "Ваша подпиÑка на Ñ‚Ñги была Ñохранена" #: models/badges.py:129 #, python-format @@ -3556,8 +4451,7 @@ msgstr "Учитель" #: models/badges.py:218 msgid "Supporter" -msgstr "" -"Помощник" +msgstr "Помощник" #: models/badges.py:219 msgid "First upvote" @@ -3696,13 +4590,11 @@ msgstr "Первое отмеченное Ñообщение" #: models/badges.py:563 msgid "Cleanup" -msgstr "" -"Уборщик" +msgstr "Уборщик" #: models/badges.py:566 msgid "First rollback" -msgstr "" -"Первый откат" +msgstr "Первый откат" #: models/badges.py:577 msgid "Pundit" @@ -3718,8 +4610,7 @@ msgstr "Редактор" #: models/badges.py:615 msgid "First edit" -msgstr "" -"Первое редактирование" +msgstr "Первое редактирование" #: models/badges.py:623 msgid "Associate Editor" @@ -3736,8 +4627,7 @@ msgstr "Организатор" #: models/badges.py:637 msgid "First retag" -msgstr "" -"Первое изменение Ñ‚Ñгов" +msgstr "Первое изменение Ñ‚Ñгов" #: models/badges.py:644 msgid "Autobiographer" @@ -3767,8 +4657,7 @@ msgstr "ÐнтузиаÑÑ‚" #: models/badges.py:714 #, python-format msgid "Visited site every day for %(num)s days in a row" -msgstr "" -"ПоÑещал Ñайт каждый день подрÑд %(num)s дней" +msgstr "ПоÑещал Ñайт каждый день подрÑд %(num)s дней" #: models/badges.py:732 msgid "Commentator" @@ -3777,8 +4666,7 @@ msgstr "Комментатор" #: models/badges.py:736 #, python-format msgid "Posted %(num_comments)s comments" -msgstr "" -"ОÑтавил %(num_comments)s комментариев" +msgstr "ОÑтавил %(num_comments)s комментариев" #: models/badges.py:752 msgid "Taxonomist" @@ -3787,18 +4675,38 @@ msgstr "ТакÑономиÑÑ‚" #: models/badges.py:756 #, python-format msgid "Created a tag used by %(num)s questions" -msgstr "" -"Создал Ñ‚Ñг, который иÑпользуетÑÑ Ð² %(num)s вопроÑах" +msgstr "Создал Ñ‚Ñг, который иÑпользуетÑÑ Ð² %(num)s вопроÑах" -#: models/badges.py:776 models/badges.py:774 +#: models/badges.py:774 msgid "Expert" msgstr "ÐкÑперт" -#: models/badges.py:779 models/badges.py:777 +#: models/badges.py:777 msgid "Very active in one tag" msgstr "Очень активны в одном теге" -#: models/meta.py:112 models/post.py:1110 +#: models/message.py:16 +#, fuzzy +msgid "message" +msgstr "soobscheniya/" + +#: models/post.py:1553 +msgid "Sorry, this question has been deleted and is no longer accessible" +msgstr "Извините, Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½ и больше не доÑтупен" + +#: models/post.py:1569 +msgid "" +"Sorry, the answer you are looking for is no longer available, because the " +"parent question has been removed" +msgstr "" +"К Ñожалению, ответ который вы ищете больше не доÑтупен, потому что Ð²Ð¾Ð¿Ñ€Ð¾Ñ " +"был удален" + +#: models/post.py:1576 +msgid "Sorry, this answer has been removed and is no longer accessible" +msgstr "К Ñожалению, Ñтот ответ был удален и больше не доÑтупен" + +#: models/post.py:1592 msgid "" "Sorry, the comment you are looking for is no longer accessible, because the " "parent question has been removed" @@ -3806,7 +4714,7 @@ msgstr "" "К Ñожалению, комментарии который вы ищете больше не доÑтупны, потому что " "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» удален" -#: models/meta.py:119 models/post.py:1117 +#: models/post.py:1599 msgid "" "Sorry, the comment you are looking for is no longer accessible, because the " "parent answer has been removed" @@ -3814,52 +4722,103 @@ msgstr "" "К Ñожалению, комментарий который Ð’Ñ‹ ищете больше не доÑтупен, потому что " "ответ был удален" -#: models/question.py:72 models/question.py:54 +#: models/post.py:1621 +msgid "This post is temporarily not available" +msgstr "" + +#: models/post.py:2130 +#, python-format +msgid "" +"Thank you for your post to %(site)s. It will be published after the " +"moderators review." +msgstr "" + +#: models/post.py:2134 +#, fuzzy, python-format +msgid "your post to %(site)s" +msgstr "О %(site)s" + +#: models/post.py:2141 +msgid "" +"Your post was placed on the moderation queue and will be published after the " +"moderator approval." +msgstr "" + +#: models/question.py:102 #, python-format msgid "\" and \"%s\"" msgstr "\" и \"%s\"" -#: models/question.py:75 models/question.py:57 +#: models/question.py:105 msgid "\" and more" -msgstr "" -"\" и др." +msgstr "\" и др." -#: models/question.py:494 models/post.py:1071 -msgid "Sorry, this question has been deleted and is no longer accessible" -msgstr "" -"Извините, Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑƒÐ´Ð°Ð»Ñ‘Ð½ и больше не доÑтупен" +#: models/question.py:770 +#, fuzzy, python-format +msgid "%(count)d answer:" +msgid_plural "%(count)d answers:" +msgstr[0] "прокомментирован ответ" +msgstr[1] "прокомментирован ответ" +msgstr[2] "прокомментирован ответ" -#: models/question.py:950 +#: models/question.py:1263 #, python-format -msgid "%(author)s modified the question" -msgstr "%(author)s отредактировали вопроÑ" +msgid "Tag %s is new and will be submitted for the moderators approval" +msgstr "" -#: models/question.py:954 +#: models/question.py:1268 models/tag.py:217 #, python-format -msgid "%(people)s posted %(new_answer_count)s new answers" -msgstr "%(people)s задали новых %(new_answer_count)s вопроÑов" +msgid "Tags %s are new and will be submitted for the moderators approval" +msgstr "" -#: models/question.py:959 -#, python-format -msgid "%(people)s commented the question" -msgstr "%(people)s оÑтавили комментарии" +#: models/question.py:1501 +#, fuzzy, python-format +msgid "Please, <a href=\"%s\">review your question</a>." +msgstr "Тогда задайте Ñвой вопроÑ!" -#: models/question.py:964 -#, python-format -msgid "%(people)s commented answers" -msgstr "%(people)s комментировали вопроÑÑ‹" +#: models/reply_by_email.py:38 +#, fuzzy +msgid "Post an answer" +msgstr "править любой ответ" -#: models/question.py:966 -#, python-format -msgid "%(people)s commented an answer" -msgstr "%(people)s комментировали ответы" +#: models/reply_by_email.py:39 +#, fuzzy +msgid "Post a comment" +msgstr "добавить комментарий" + +#: models/reply_by_email.py:40 +#, fuzzy +msgid "Edit post" +msgstr "добавить комментарий" + +#: models/reply_by_email.py:41 +msgid "Append to post" +msgstr "" + +#: models/reply_by_email.py:42 +msgid "Answer or comment, depending on the size of post" +msgstr "" + +#: models/reply_by_email.py:43 +#, fuzzy +msgid "Validate email and record signature" +msgstr "Емайл Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ адреÑа не выÑлан" + +#: models/reply_by_email.py:106 +#, fuzzy +msgid "added content by email" +msgstr "отредактировано по email" + +#: models/reply_by_email.py:109 +msgid "edited by email" +msgstr "отредактировано по email" -#: models/repute.py:142 models/repute.py:143 +#: models/repute.py:223 #, python-format msgid "<em>Changed by moderator. Reason:</em> %(reason)s" msgstr "<em>Изменено модератором. Причина:</em> %(reason)s" -#: models/repute.py:153 models/repute.py:154 +#: models/repute.py:234 #, python-format msgid "" "%(points)s points were added for %(username)s's contribution to question " @@ -3867,7 +4826,7 @@ msgid "" msgstr "" "%(points)s было добавлено за вклад %(username)s к вопроÑу %(question_title)s" -#: models/repute.py:158 models/repute.py:159 +#: models/repute.py:239 #, python-format msgid "" "%(points)s points were subtracted for %(username)s's contribution to " @@ -3876,73 +4835,96 @@ msgstr "" "%(points)s было отобрано у %(username)s's за учаÑтие в вопроÑе " "%(question_title)s" -#: models/tag.py:151 models/tag.py:106 -msgid "interesting" -msgstr "интереÑные" - -#: models/tag.py:151 models/tag.py:106 -msgid "ignored" -msgstr "игнорируемые" +#: models/tag.py:209 +#, python-format +msgid "New tags added to %s" +msgstr "" -#: models/user.py:264 models/user.py:266 +#: models/user.py:284 msgid "Entire forum" msgstr "ВеÑÑŒ форум" -#: models/user.py:265 models/user.py:267 +#: models/user.py:285 msgid "Questions that I asked" msgstr "ВопроÑÑ‹ заданные мной" -#: models/user.py:266 models/user.py:268 +#: models/user.py:286 msgid "Questions that I answered" msgstr "ВопроÑÑ‹ отвеченные мной" -#: models/user.py:267 models/user.py:269 +#: models/user.py:287 msgid "Individually selected questions" msgstr "Индивидуально избранные вопроÑÑ‹" -#: models/user.py:268 models/user.py:270 +#: models/user.py:288 msgid "Mentions and comment responses" msgstr "Ð£Ð¿Ð¾Ð¼Ð¸Ð½Ð°Ð½Ð¸Ñ Ð¸ комментарии ответов" -#: models/user.py:271 models/user.py:273 +#: models/user.py:291 msgid "Instantly" msgstr "Мгновенно" -#: models/user.py:272 models/user.py:274 +#: models/user.py:292 msgid "Daily" msgstr "Раз в день" -#: models/user.py:273 models/user.py:275 +#: models/user.py:293 msgid "Weekly" msgstr "Раз в неделю" -#: models/user.py:274 models/user.py:276 +#: models/user.py:294 msgid "No email" msgstr "Отменить" -#: skins/default/templates/404.jinja.html:3 -#: skins/default/templates/404.jinja.html:10 +#: models/user.py:528 +msgid "Can join when they want" +msgstr "" + +#: models/user.py:529 +msgid "Users ask permission" +msgstr "" + +#: models/user.py:530 +#, fuzzy +msgid "Moderator adds users" +msgstr "Модерировать Ñтого пользователÑ" + +#: models/user.py:579 +#, fuzzy +msgid "Please give a list of valid email addresses." +msgstr "пожалуйÑта, введите правильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" + +#: models/user.py:589 +#, fuzzy +msgid "Please give a list of valid email domain names." +msgstr "пожалуйÑта, введите правильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" + +#: models/widgets.py:34 +#, fuzzy +msgid "css for the widget" +msgstr "CSS Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° вопроÑов" + +#: templates/404.html:3 templates/404.html.py:10 msgid "Page not found" msgstr "Страница не найдена" -#: skins/default/templates/404.jinja.html:13 +#: templates/404.html:13 msgid "Sorry, could not find the page you requested." msgstr "Извините, но запрошенный Вами документ не был найден." -#: skins/default/templates/404.jinja.html:15 +#: templates/404.html:15 msgid "This might have happened for the following reasons:" msgstr "Ðто могло произойти по Ñледующим причинам:" -#: skins/default/templates/404.jinja.html:17 +#: templates/404.html:17 msgid "this question or answer has been deleted;" -msgstr "" -"Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ был удалён;" +msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ был удалён;" -#: skins/default/templates/404.jinja.html:18 +#: templates/404.html:18 msgid "url has error - please check it;" msgstr "Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» неверен - пожалуйÑта проверьте;" -#: skins/default/templates/404.jinja.html:19 +#: templates/404.html:19 msgid "" "the page you tried to visit is protected or you don't have sufficient " "points, see" @@ -3950,293 +4932,262 @@ msgstr "" "документ который Ð’Ñ‹ запроÑили защищён или у Ð’Ð°Ñ Ð½Ðµ хватает \"репутации\", " "пожалуйÑта поÑмотрите" -#: skins/default/templates/404.jinja.html:19 -#: skins/default/templates/blocks/footer.html:5 -#: skins/default/templates/blocks/header_meta_links.html:12 -#: skins/default/templates/blocks/question_edit_tips.html:10 -#: skins/default/templates/widgets/footer.html:39 +#: templates/404.html:19 templates/widgets/footer.html:39 msgid "faq" -msgstr "" -"ЧаÑто задаваемые вопроÑÑ‹" +msgstr "ЧаÑто задаваемые вопроÑÑ‹" -#: skins/default/templates/404.jinja.html:20 +#: templates/404.html:20 msgid "if you believe this error 404 should not have occured, please" -msgstr "" -"еÑли Ð’Ñ‹ Ñчитаете что Ñта ошибка 404 показана неверно, пожалуйÑта" +msgstr "еÑли Ð’Ñ‹ Ñчитаете что Ñта ошибка 404 показана неверно, пожалуйÑта" -#: skins/default/templates/404.jinja.html:21 +#: templates/404.html:21 msgid "report this problem" msgstr "Ñообщите об Ñтой проблеме" -#: skins/default/templates/404.jinja.html:30 -#: skins/default/templates/500.jinja.html:11 +#: templates/404.html:30 templates/500.html:11 msgid "back to previous page" msgstr "вернутьÑÑ Ð½Ð° предыдущую Ñтраницу" -#: skins/default/templates/404.jinja.html:31 -#: skins/default/templates/main_page/tab_bar.html:70 -#: skins/default/templates/widgets/scope_nav.html:6 +#: templates/404.html:31 templates/widgets/scope_nav.html:17 msgid "see all questions" msgstr "Ñмотреть вÑе вопроÑÑ‹" -#: skins/default/templates/404.jinja.html:32 +#: templates/404.html:32 msgid "see all tags" -msgstr "" -"Ñмотреть вÑе теги" +msgstr "Ñмотреть вÑе теги" -#: skins/default/templates/500.jinja.html:3 -#: skins/default/templates/500.jinja.html:5 +#: templates/500.html:3 templates/500.html.py:5 msgid "Internal server error" msgstr "ВнутреннÑÑ Ð¾ÑˆÐ¸Ð±ÐºÐ° Ñервера" -#: skins/default/templates/500.jinja.html:8 +#: templates/500.html:8 msgid "system error log is recorded, error will be fixed as soon as possible" msgstr "" "об Ñтой ошибке была Ñделана запиÑÑŒ в журнале и ÑоответÑтвующие иÑÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ " "будут вÑкоре Ñделаны" -#: skins/default/templates/500.jinja.html:9 +#: templates/500.html:9 msgid "please report the error to the site administrators if you wish" -msgstr "" -"пожалуйÑта Ñообщите об ошибке админиÑтратору Ñайта" +msgstr "пожалуйÑта Ñообщите об ошибке админиÑтратору Ñайта" -#: skins/default/templates/500.jinja.html:12 +#: templates/500.html:12 msgid "see latest questions" msgstr "Ñмотреть Ñамые новые вопроÑÑ‹" -#: skins/default/templates/500.jinja.html:13 +#: templates/500.html:13 msgid "see tags" -msgstr "" -"Ñмотреть теги" - -#: skins/default/templates/about.html:3 skins/default/templates/about.html:5 -#, python-format -msgid "About %(site_name)s" -msgstr "" +msgstr "Ñмотреть теги" -#: skins/default/templates/answer_edit.html:4 -#: skins/default/templates/answer_edit.html:10 +#: templates/answer_edit.html:4 templates/answer_edit.html.py:10 msgid "Edit answer" msgstr "Править ответ" -#: skins/default/templates/answer_edit.html:10 -#: skins/default/templates/question_edit.html:9 -#: skins/default/templates/question_retag.html:5 -#: skins/default/templates/revisions.html:7 +#: templates/answer_edit.html:10 templates/question_edit.html:9 +#: templates/question_retag.html:5 templates/revisions.html:7 msgid "back" msgstr "назад" -#: skins/default/templates/answer_edit.html:14 +#: templates/answer_edit.html:14 msgid "revision" msgstr "верÑÐ¸Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸" -#: skins/default/templates/answer_edit.html:17 -#: skins/default/templates/question_edit.html:16 -msgid "select revision" -msgstr "выбрать верÑию" - -#: skins/default/templates/answer_edit.html:21 -#: skins/default/templates/question_edit.html:27 -#: skins/default/templates/answer_edit.html:24 -#: skins/default/templates/question_edit.html:35 +#: templates/answer_edit.html:46 templates/question_edit.html:57 msgid "Save edit" msgstr "Сохранить" -#: skins/default/templates/answer_edit.html:22 -#: skins/default/templates/close.html:16 -#: skins/default/templates/feedback.html:42 -#: skins/default/templates/question_edit.html:28 -#: skins/default/templates/question_retag.html:22 -#: skins/default/templates/reopen.html:27 -#: skins/default/templates/subscribe_for_tags.html:16 -#: skins/default/templates/authopenid/changeemail.html:38 -#: skins/default/templates/user_profile/user_edit.html:84 -#: skins/common/templates/authopenid/changeemail.html:51 -#: skins/default/templates/answer_edit.html:25 -#: skins/default/templates/feedback.html:64 -#: skins/default/templates/question_edit.html:36 -#: skins/default/templates/user_profile/user_edit.html:102 +#: templates/answer_edit.html:51 templates/close.html:16 +#: templates/feedback.html:64 templates/question_edit.html:58 +#: templates/question_retag.html:22 templates/reopen.html:28 +#: templates/subscribe_for_tags.html:16 +#: templates/authopenid/changeemail.html:51 +#: templates/user_profile/reject_post_dialog.html:36 +#: templates/user_profile/reject_post_dialog.html:74 +#: templates/user_profile/reject_post_dialog.html:104 +#: templates/user_profile/user_edit.html:110 msgid "Cancel" msgstr "Отменить" -#: skins/default/templates/answer_edit.html:60 -#: skins/default/templates/answer_edit.html:63 -#: skins/default/templates/ask.html:51 skins/default/templates/ask.html:54 -#: skins/default/templates/macros.html:698 -#: skins/default/templates/question.html:576 -#: skins/default/templates/question.html:579 -#: skins/default/templates/question_edit.html:72 -#: skins/default/templates/question_edit.html:75 -#: skins/common/templates/widgets/edit_post.html:60 -#: skins/default/templates/answer_edit.html:61 -#: skins/default/templates/answer_edit.html:64 -#: skins/default/templates/ask.html:49 skins/default/templates/ask.html:52 -#: skins/default/templates/question_edit.html:73 -#: skins/default/templates/question_edit.html:76 -#: skins/default/templates/question/javascript.html:85 -#: skins/default/templates/question/javascript.html:88 +#: templates/answer_edit.html:92 templates/answer_edit.html.py:95 +#: templates/ask.html:74 templates/ask.html.py:77 +#: templates/question_edit.html:97 templates/question_edit.html.py:100 +#: templates/question/javascript.html:73 templates/question/javascript.html:76 +#: templates/widgets/edit_post.html:83 msgid "hide preview" msgstr "Ñкрыть предварительный проÑмотр" -#: skins/default/templates/answer_edit.html:63 -#: skins/default/templates/ask.html:54 -#: skins/default/templates/question.html:579 -#: skins/default/templates/question_edit.html:75 -#: skins/default/templates/answer_edit.html:64 -#: skins/default/templates/ask.html:52 -#: skins/default/templates/question_edit.html:76 -#: skins/default/templates/question/javascript.html:88 +#: templates/answer_edit.html:95 templates/ask.html:77 +#: templates/question_edit.html:100 templates/question/javascript.html:76 msgid "show preview" msgstr "показать предварительный проÑмотр" -#: skins/default/templates/ask.html:4 -msgid "Ask a question" -msgstr "СпроÑить" +#: templates/ask.html:4 templates/widgets/ask_button.html:9 +#: templates/widgets/ask_form.html:48 +msgid "Ask Your Question" +msgstr "Задайте Ваш вопроÑ" + +#: templates/ask.html:21 +msgid "" +"since you are not logged in right now, you will be asked to sign in or " +"register after posting your question" +msgstr "" + +#: templates/ask.html:25 +#, python-format +msgid "" +"YYour email, %%(email)s has not yet been validated. To post messages you " +"must verify your email, please see <a href='%%(email_validation_faq_url)" +"s'>more details here</a>. You can submit your question now and validate " +"email after that. Meanwhile, your question will saved as pending." +msgstr "" + +#: templates/ask.html:29 +#, fuzzy +msgid "please, try to make your question interesting to this community" +msgstr "задавайте интереÑные вопроÑÑ‹ Ð´Ð»Ñ Ñтого ÑобщеÑтва" + +#: templates/ask.html:30 templates/widgets/answer_edit_tips.html:12 +#: templates/widgets/question_edit_tips.html:8 +msgid "provide enough details" +msgstr "дайте доÑтаточно информации в Вашем Ñообщении" + +#: templates/ask.html:31 templates/widgets/answer_edit_tips.html:15 +#: templates/widgets/question_edit_tips.html:11 +msgid "be clear and concise" +msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть четким и лаконичным" -#: skins/default/templates/badge.html:4 skins/default/templates/badge.html:8 -#: skins/default/templates/user_profile/user_recent.html:18 -#: skins/default/templates/user_profile/user_stats.html:172 -#: skins/default/templates/badge.html:5 skins/default/templates/badge.html:9 -#: skins/default/templates/user_profile/user_recent.html:19 -#: skins/default/templates/user_profile/user_stats.html:108 +#: templates/ask.html:36 templates/widgets/answer_edit_tips.html:20 +#: templates/widgets/question_edit_tips.html:16 +msgid "see frequently asked questions" +msgstr "поÑмотрите на чаÑто задаваемые вопроÑÑ‹" + +#: templates/ask.html:36 templates/faq_static.html:3 +#: templates/faq_static.html.py:5 templates/widgets/answer_edit_tips.html:20 +#: templates/widgets/question_edit_tips.html:16 views/meta.py:71 +msgid "FAQ" +msgstr "" + +#: templates/badge.html:5 templates/badge.html.py:9 +#: templates/user_profile/user_recent.html:20 +#: templates/user_profile/user_stats.html:120 #, python-format msgid "%(name)s" msgstr "%(name)s" -#: skins/default/templates/badge.html:4 skins/default/templates/badge.html:5 +#: templates/badge.html:5 msgid "Badge" msgstr "Ðаграда" -#: skins/default/templates/badge.html:6 skins/default/templates/badge.html:7 +#: templates/badge.html:7 #, python-format msgid "Badge \"%(name)s\"" -msgstr "" -"Ðаграда \"%(name)s\"" +msgstr "Ðаграда \"%(name)s\"" -#: skins/default/templates/badge.html:8 -#: skins/default/templates/user_profile/user_recent.html:17 -#: skins/default/templates/user_profile/user_stats.html:170 -#: skins/default/templates/badge.html:9 -#: skins/default/templates/user_profile/user_stats.html:106 +#: templates/badge.html:9 templates/user_profile/user_recent.html:18 +#: templates/user_profile/user_stats.html:118 #, python-format msgid "%(description)s" msgstr "%(description)s" -#: skins/default/templates/badge.html:13 skins/default/templates/badge.html:14 +#: templates/badge.html:14 msgid "user received this badge:" msgid_plural "users received this badge:" -msgstr[0] "" -"пользователь, получивший Ñтот значок:" -msgstr[1] "" -"пользователÑ, получивших Ñтот значок:" -msgstr[2] "" -"пользователей, получивших Ñтот значок:" +msgstr[0] "пользователь, получивший Ñтот значок:" +msgstr[1] "пользователÑ, получивших Ñтот значок:" +msgstr[2] "пользователей, получивших Ñтот значок:" + +#: templates/badges.html:3 templates/badges.html.py:5 +msgid "Badges" +msgstr "Ðаграды" -#: skins/default/templates/badges.html:3 -msgid "Badges summary" +#: templates/badges.html:7 +msgid "Community gives you awards for your questions, answers and votes." +msgstr "СообщеÑтво даёт вам награды за ваши вопроÑÑ‹, ответы и голоÑа." + +#: templates/badges.html:8 +#, fuzzy +msgid "" +"Below is the list of available badges and number of times each type of badge " +"has been awarded." msgstr "" -"Ðаграды" +"Ðиже приведен ÑпиÑок доÑтупных значков и чиÑло награждений каждым из них. " +"ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ новым значкам отправлÑйте через обратную ÑвÑзь - " +"%(feedback_faq_url)s." -#: skins/default/templates/badges.html:5 -#: skins/default/templates/badges.html:36 +#: templates/badges.html:31 msgid "Community badges" -msgstr "" -"Уровни наград" +msgstr "Уровни наград" -#: skins/default/templates/badges.html:10 -#: skins/default/templates/badges.html:38 +#: templates/badges.html:33 msgid "gold badge: the highest honor and is very rare" -msgstr "" -"Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð¼ÐµÐ´Ð°Ð»ÑŒ: выÑÐ¾ÐºÐ°Ñ Ñ‡ÐµÑÑ‚ÑŒ и очень Ñ€ÐµÐ´ÐºÐ°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° " +msgstr "Ð·Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð¼ÐµÐ´Ð°Ð»ÑŒ: выÑÐ¾ÐºÐ°Ñ Ñ‡ÐµÑÑ‚ÑŒ и очень Ñ€ÐµÐ´ÐºÐ°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° " -#: skins/default/templates/badges.html:11 -msgid "gold badge description" +#: templates/badges.html:36 +msgid "" +"Gold badge is the highest award in this community. To obtain it you have to " +"show \n" +"profound knowledge and ability in addition to your active participation." msgstr "" -"Ð—Ð¾Ð»Ð¾Ñ‚Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° - выÑÑˆÐ°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð° ÑообщеÑтва. Ð”Ð»Ñ ÐµÐµ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð½ÑƒÐ¶Ð½Ð¾ показать " -"глубокие Ð·Ð½Ð°Ð½Ð¸Ñ Ð¸ ÑпоÑобноÑти в дополнение к активному учаÑтию." -#: skins/default/templates/badges.html:14 -#: skins/default/templates/badges.html:47 +#: templates/badges.html:42 templates/badges.html.py:46 msgid "" "silver badge: occasionally awarded for the very high quality contributions" -msgstr "" -"ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: как правило, приÑуждаетÑÑ Ð·Ð° большой вклад" - -#: skins/default/templates/badges.html:15 -msgid "silver badge description" msgstr "ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: как правило, приÑуждаетÑÑ Ð·Ð° большой вклад" -#: skins/default/templates/badges.html:18 -#: skins/default/templates/badges.html:54 -#: skins/default/templates/badges.html:58 +#: templates/badges.html:49 templates/badges.html.py:53 msgid "bronze badge: often given as a special honor" -msgstr "" -"Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: чаÑто даётÑÑ Ð·Ð° оÑобые заÑлуги" +msgstr "Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: чаÑто даётÑÑ Ð·Ð° оÑобые заÑлуги" -#: skins/default/templates/badges.html:19 -msgid "bronze badge description" +#: templates/base.html:19 +#, python-format +msgid "RSS feed from %(site_title)s" msgstr "" -"Ð±Ñ€Ð¾Ð½Ð·Ð¾Ð²Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: чаÑто даётÑÑ ÐºÐ°Ðº оÑобые заÑлуги" -#: skins/default/templates/close.html:3 skins/default/templates/close.html:5 +#: templates/close.html:3 templates/close.html.py:5 msgid "Close question" msgstr "Закрыть вопроÑ" -#: skins/default/templates/close.html:6 +#: templates/close.html:6 msgid "Close the question" msgstr "Закрыть вопроÑ" -#: skins/default/templates/close.html:11 +#: templates/close.html:11 msgid "Reasons" msgstr "Причины" -#: skins/default/templates/close.html:15 +#: templates/close.html:15 msgid "OK to close" msgstr "OK, чтобы закрыть" -#: skins/default/templates/faq.html:3 skins/default/templates/faq.html.py:5 -#: skins/default/templates/faq_static.html:3 -#: skins/default/templates/faq_static.html:5 -#: skins/default/templates/widgets/answer_edit_tips.html:20 -#: skins/default/templates/widgets/question_edit_tips.html:16 views/meta.py:61 -msgid "FAQ" -msgstr "" - -#: skins/default/templates/faq.html:5 -#: skins/default/templates/faq_static.html:5 +#: templates/faq_static.html:5 msgid "Frequently Asked Questions " msgstr "ЧаÑто задаваемые вопроÑÑ‹" -#: skins/default/templates/faq.html:6 -#: skins/default/templates/faq_static.html:6 +#: templates/faq_static.html:6 msgid "What kinds of questions can I ask here?" msgstr "Какие вопроÑÑ‹ Ñ Ð¼Ð¾Ð³Ñƒ задать здеÑÑŒ?" -#: skins/default/templates/faq.html:7 -#: skins/default/templates/faq_static.html:7 +#: templates/faq_static.html:7 +#, fuzzy msgid "" -"Most importanly - questions should be <strong>relevant</strong> to this " +"Most importantly - questions should be <strong>relevant</strong> to this " "community." msgstr "" "Самое главное - вопроÑÑ‹ должны <strong>ÑоответÑтвовать теме</strong> " "ÑообщеÑтва." -#: skins/default/templates/faq.html:8 -#: skins/default/templates/faq_static.html:8 +#: templates/faq_static.html:8 msgid "" -"Before asking the question - please make sure to use search to see whether " -"your question has alredy been answered." +"Before you ask - please make sure to search for a similar question. You can " +"search questions by their title or tags." msgstr "" "Перед тем как задать Ð²Ð¾Ð¿Ñ€Ð¾Ñ - пожалуйÑта, не забудьте иÑпользовать поиÑк, " "чтобы убедитьÑÑ, что ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐµÑ‰Ðµ не имеет ответа." -#: skins/default/templates/faq.html:10 -#: skins/default/templates/faq_static.html:10 -msgid "What questions should I avoid asking?" +#: templates/faq_static.html:10 +msgid "What kinds of questions should be avoided?" msgstr "Каких вопроÑов мне Ñледует избегать?" -#: skins/default/templates/faq.html:11 -#: skins/default/templates/faq_static.html:11 +#: templates/faq_static.html:11 msgid "" "Please avoid asking questions that are not relevant to this community, too " "subjective and argumentative." @@ -4244,63 +5195,51 @@ msgstr "" "ПроÑьба не задавать вопроÑÑ‹, которые не ÑоответÑтвуют теме Ñтого Ñайта, " "Ñлишком Ñубъективны или очевидны." -#: skins/default/templates/faq.html:13 -#: skins/default/templates/faq_static.html:13 +#: templates/faq_static.html:13 msgid "What should I avoid in my answers?" msgstr "Чего Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ избегать в Ñвоих ответах?" -#: skins/default/templates/faq.html:14 -#: skins/default/templates/faq_static.html:14 +#: templates/faq_static.html:14 msgid "" -"is a Q&A site, not a discussion group. Therefore - please avoid having " -"discussions in your answers, comment facility allows some space for brief " -"discussions." +"is a <strong>question and answer</strong> site - <strong>it is not a " +"discussion group</strong>. Please avoid holding debates in your answers as " +"they tend to dilute the essense of questions and answers. For the brief " +"discussions please use commenting facility." msgstr "" -"ÑвлÑетÑÑ Ð¼ÐµÑтом <strong>ответов/вопроÑов, а не группой обÑуждениÑ</strong>. " -"ПоÑтому - пожалуйÑта, избегайте обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² Ñвоих ответах. Комментарии " -"позволÑÑŽÑ‚ лишь краткое обÑуждение." -#: skins/default/templates/faq.html:15 -#: skins/default/templates/faq_static.html:15 +#: templates/faq_static.html:15 msgid "Who moderates this community?" msgstr "Кто модерирует Ñто ÑообщеÑтво?" -#: skins/default/templates/faq.html:16 -#: skins/default/templates/faq_static.html:16 +#: templates/faq_static.html:16 msgid "The short answer is: <strong>you</strong>." msgstr "Ответ краток: <strong>вы.</strong>" -#: skins/default/templates/faq.html:17 -#: skins/default/templates/faq_static.html:17 +#: templates/faq_static.html:17 msgid "This website is moderated by the users." -msgstr "" -"Ðтот Ñайт управлÑетÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми." +msgstr "Ðтот Ñайт управлÑетÑÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми." -#: skins/default/templates/faq.html:18 -#: skins/default/templates/faq_static.html:18 +#: templates/faq_static.html:18 msgid "" -"The reputation system allows users earn the authorization to perform a " -"variety of moderation tasks." +"Karma system allows users to earn rights to perform a variety of moderation " +"tasks" msgstr "" "СиÑтема репутации (кармы) позволÑет пользователÑм приобретать различные " -"управленчеÑкие права." +"права модератора." -#: skins/default/templates/faq.html:20 -#: skins/default/templates/faq_static.html:20 -msgid "How does reputation system work?" +#: templates/faq_static.html:20 +msgid "How does karma system work?" msgstr "Как работает карма?" -#: skins/default/templates/faq.html:21 -#: skins/default/templates/faq_static.html:21 -msgid "Rep system summary" +#: templates/faq_static.html:21 +msgid "" +"When a question or answer is upvoted, the user who posted them will gain " +"some points, which are called \\\"karma points\\\". These points serve as a " +"rough measure of the community trust to him/her. Various moderation tasks " +"are gradually assigned to the users based on those points." msgstr "" -"Когда за Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ голоÑуют, пользователь который оÑтавил Ñто " -"Ñообщение, получит некоторое количеÑтво баллов, которые называютÑÑ \"очки " -"репутации\". Ðти балы Ñлужат грубой мерой Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ ÑообщеÑтва Ñтому " -"пользователю и предоÑтавлÑÑŽÑ‚ ему различные права модератора." -#: skins/default/templates/faq.html:22 -#: skins/default/templates/faq_static.html:22 +#: templates/faq_static.html:22 #, python-format msgid "" "For example, if you ask an interesting question or give a helpful answer, " @@ -4322,124 +5261,89 @@ msgstr "" "может быть набран за Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ за день. Ð’ таблице ниже предÑтавлены " "вÑе Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ðº репутации Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ типа модерированиÑ." -#: skins/default/templates/faq.html:32 -#: skins/default/templates/faq_static.html:32 -#: skins/default/templates/user_profile/user_votes.html:13 +#: templates/faq_static.html:32 templates/user_profile/user_votes.html:14 msgid "upvote" msgstr "проголоÑовать \"за\"" -#: skins/default/templates/faq.html:37 -#: skins/default/templates/faq_static.html:37 -msgid "use tags" -msgstr "иÑпользовать теги" - -#: skins/default/templates/faq.html:42 -#: skins/default/templates/faq_static.html:42 -#: skins/default/templates/faq_static.html:36 +#: templates/faq_static.html:36 msgid "add comments" msgstr "добавить комментарии" -#: skins/default/templates/faq.html:46 -#: skins/default/templates/faq_static.html:46 -#: skins/default/templates/user_profile/user_votes.html:15 -#: skins/default/templates/faq_static.html:40 +#: templates/faq_static.html:40 templates/user_profile/user_votes.html:16 msgid "downvote" msgstr "проголоÑовать \"против\"" -#: skins/default/templates/faq.html:49 -#: skins/default/templates/faq_static.html:53 -#: skins/default/templates/faq_static.html:47 +#: templates/faq_static.html:43 +msgid " accept own answer to own questions" +msgstr "принÑÑ‚ÑŒ Ñвой ответ на ÑобÑтвенные вопроÑÑ‹" + +#: templates/faq_static.html:47 msgid "open and close own questions" -msgstr "" -"открыть и закрыть ÑобÑтвенные вопроÑÑ‹" +msgstr "открыть и закрыть ÑобÑтвенные вопроÑÑ‹" -#: skins/default/templates/faq.html:53 -#: skins/default/templates/faq_static.html:57 -#: skins/default/templates/faq_static.html:51 +#: templates/faq_static.html:51 msgid "retag other's questions" msgstr "изменÑÑ‚ÑŒ теги других вопроÑов" -#: skins/default/templates/faq.html:58 -#: skins/default/templates/faq_static.html:62 -#: skins/default/templates/faq_static.html:56 +#: templates/faq_static.html:56 msgid "edit community wiki questions" +msgstr "редактировать вопроÑÑ‹ в вики ÑообщеÑтва" + +#: templates/faq_static.html:61 +msgid "edit any answer" +msgstr "править любой ответ" + +#: templates/faq_static.html:65 +msgid "delete any comment" +msgstr "удалить любой коментарий" + +#: templates/faq_static.html:69 +msgid "How to change my picture (gravatar) and what is gravatar?" msgstr "" -"редактировать вопроÑÑ‹ в вики ÑообщеÑтва" - -#: skins/default/templates/faq.html:63 -#: skins/default/templates/faq_static.html:67 -msgid "\"edit any answer" -msgstr "редактировать любой ответ" - -#: skins/default/templates/faq.html:67 -#: skins/default/templates/faq_static.html:71 -msgid "\"delete any comment" -msgstr "удалÑÑ‚ÑŒ любые комментарии" - -#: skins/default/templates/faq.html:70 -#: skins/default/templates/faq_static.html:74 -msgid "what is gravatar" -msgstr "" -"Как изменить мою картинку (gravatar) и что такое gravatar?" - -#: skins/default/templates/faq.html:71 -#: skins/default/templates/faq_static.html:75 -msgid "gravatar faq info" -msgstr "" -"<p>Картинка ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾ÑвлÑетÑÑ Ð² профиле Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ " -"<strong>gravatar</strong> (<strong>\"g\"</strong> значит глобальный " -"<strong>аватар</strong>).</p><p> Как Ñто работает? \n" -"<strong>КриптографичеÑкий ключ</strong> вычиÑлÑетÑÑ Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ email адреÑа. " -"Ð’Ñ‹ загружаете вашу любимую картинку (или картинку вашего второго Ñ) на Ñайт " -"<a href='http://gravatar.com'><strong>gravatar.com</strong></a> откуда мы " -"потом получим вашу картинку иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÐºÐ»ÑŽÑ‡.</p><p>Таким образом вÑе Ñайты " -"которым вы доверÑете могут показывать ваш аватар Ñ€Ñдом Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ ÑообщениÑми " -"при Ñтом email Ð°Ð´Ñ€ÐµÑ Ð±ÑƒÐ´ÐµÑ‚ оÑтаватьÑÑ Ð·Ð°Ñекреченным.</p><p>ПожалуйÑта " -"<strong>приукраÑьте вашу учётную запиÑÑŒ</strong> картинкой — проÑто " -"зарегиÑтрируйтеÑÑŒ на <a href='http://gravatar.com'><strong>gravatar.com</" -"strong></a> (иÑпользуйте тот-же email Ð°Ð´Ñ€ÐµÑ Ñ‡Ñ‚Ð¾ и при региÑтрации на нашем " -"Ñайте). Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ отображаютÑÑ Ð¿Ð¾ умолчанию генерируютÑÑ " -"автоматичеÑки.</p>" - -#: skins/default/templates/faq.html:72 -#: skins/default/templates/faq_static.html:76 -#: skins/default/templates/faq_static.html:71 -msgid "To register, do I need to create new password?" + +#: templates/faq_static.html:70 +msgid "" +"<p>The picture that appears on the users profiles is called " +"<strong>gravatar</strong> (which means <strong>g</strong>lobally <strong>r</" +"strong>ecognized <strong>avatar</strong>).</p><p>Here is how it works: a " +"<strong>cryptographic key</strong> (unbreakable code) is calculated from " +"your email address. You upload your picture (or your favorite alter ego " +"image) the website <a href='http://gravatar.com'><strong>gravatar.com</" +"strong></a> from where we later retreive your image using the key.</" +"p><p>This way all the websites you trust can show your image next to your " +"posts and your email address remains private.</p><p>Please " +"<strong>personalize your account</strong> with an image - just register at " +"<a href='http://gravatar.com'><strong>gravatar.com</strong></a> (just please " +"be sure to use the same email address that you used to register with us). " +"Default image that looks like a kitchen tile is generated automatically.</p>" msgstr "" -"Ðеобходимо ли иÑпользовать новый пароль, чтобы зарегиÑтрироватьÑÑ?" -#: skins/default/templates/faq.html:73 -#: skins/default/templates/faq_static.html:77 -#: skins/default/templates/faq_static.html:72 +#: templates/faq_static.html:71 +msgid "To register, do I need to create new password?" +msgstr "Ðеобходимо ли иÑпользовать новый пароль, чтобы зарегиÑтрироватьÑÑ?" + +#: templates/faq_static.html:72 +#, fuzzy msgid "" "No, you don't have to. You can login through any service that supports " -"OpenID, e.g. Google, Yahoo, AOL, etc.\"" +"OpenID, e.g. Google, Yahoo, AOL, etc." msgstr "" "Ðет, Ñтого делать нет необходимоÑти. Ð’Ñ‹ можете Войти через любой ÑервиÑ, " "который поддерживает OpenID, например, Google, Yahoo, AOL и Ñ‚.д." -#: skins/default/templates/faq.html:74 -#: skins/default/templates/faq_static.html:78 -#: skins/default/templates/faq_static.html:73 +#: templates/faq_static.html:73 msgid "\"Login now!\"" -msgstr "" -"\"Войти ÑейчаÑ!\"" +msgstr "\"Войти ÑейчаÑ!\"" -#: skins/default/templates/faq.html:76 -#: skins/default/templates/faq_static.html:80 -#: skins/default/templates/faq_static.html:75 +#: templates/faq_static.html:75 msgid "Why other people can edit my questions/answers?" msgstr "Почему другие люди могут изменÑÑ‚ÑŒ мои вопроÑÑ‹ / ответы?" -#: skins/default/templates/faq.html:77 -#: skins/default/templates/faq_static.html:81 -#: skins/default/templates/faq_static.html:76 +#: templates/faq_static.html:76 msgid "Goal of this site is..." msgstr "Цель Ñтого Ñайта ..." -#: skins/default/templates/faq.html:77 -#: skins/default/templates/faq_static.html:81 -#: skins/default/templates/faq_static.html:76 +#: templates/faq_static.html:76 msgid "" "So questions and answers can be edited like wiki pages by experienced users " "of this site and this improves the overall quality of the knowledge base " @@ -4449,45 +5353,30 @@ msgstr "" "ответы как Ñтраницы вики, что в Ñвою очередь улучшает качеÑтво ÑÐ¾Ð´ÐµÑ€Ð¶Ð°Ð½Ð¸Ñ " "базы данных вопроÑов/ответов." -#: skins/default/templates/faq.html:78 -#: skins/default/templates/faq_static.html:82 -#: skins/default/templates/faq_static.html:77 +#: templates/faq_static.html:77 msgid "If this approach is not for you, we respect your choice." msgstr "ЕÑли Ñтот подход не Ð´Ð»Ñ Ð²Ð°Ñ, мы уважаем ваш выбор." -#: skins/default/templates/faq.html:80 -#: skins/default/templates/faq_static.html:84 -#: skins/default/templates/faq_static.html:79 +#: templates/faq_static.html:79 msgid "Still have questions?" -msgstr "" -"ОÑталиÑÑŒ вопроÑÑ‹?" +msgstr "ОÑталиÑÑŒ вопроÑÑ‹?" -#: skins/default/templates/faq.html:81 -#: skins/default/templates/faq_static.html:85 +#: templates/faq_static.html:80 #, python-format msgid "" -"Please ask your question at %(ask_question_url)s, help make our community " -"better!" -msgstr "" -"Задайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² %(ask_question_url)s, помогите Ñделать наше ÑообщеÑтво " -"лучше!" - -#: skins/default/templates/faq_static.html:49 -#: skins/default/templates/faq_static.html:43 -msgid " accept own answer to own questions" -msgstr "" -"принÑÑ‚ÑŒ Ñвой ответ на ÑобÑтвенные вопроÑÑ‹" +"Please <a href='%(ask_question_url)s'>ask</a> your question, help make our " +"community better!" +msgstr "Задайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² %(ask_question_url)s!" -#: skins/default/templates/feedback.html:3 +#: templates/feedback.html:3 msgid "Feedback" msgstr "ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь" -#: skins/default/templates/feedback.html:5 +#: templates/feedback.html:5 msgid "Give us your feedback!" msgstr "Ð’Ñ‹Ñкажите Ñвое мнение!" -#: skins/default/templates/feedback.html:9 -#: skins/default/templates/feedback.html:14 +#: templates/feedback.html:14 #, python-format msgid "" "\n" @@ -4502,8 +5391,7 @@ msgstr "" " ПожалуйÑта напишите Ваш отзыв ниже.\n" " " -#: skins/default/templates/feedback.html:16 -#: skins/default/templates/feedback.html:21 +#: templates/feedback.html:21 msgid "" "\n" " <span class='big strong'>Dear visitor</span>, we look forward to " @@ -4517,28 +5405,201 @@ msgstr "" " ПожалуйÑта напишите Ваш отзыв ниже.\n" " " -#: skins/default/templates/feedback.html:25 -msgid "(please enter a valid email)" -msgstr "(пожалуйÑта, введите правильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты)" +#: templates/feedback.html:30 +msgid "(to hear from us please enter a valid email or check the box below)" +msgstr "" +"(чтобы получать от Ð½Ð°Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ правильный email-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ " +"отметьте переключатель ниже)" -#: skins/default/templates/feedback.html:33 -#: skins/default/templates/feedback.html:37 -#: skins/default/templates/feedback.html:46 +#: templates/feedback.html:37 templates/feedback.html.py:46 msgid "(this field is required)" msgstr "(Ñто поле обÑзательно)" -#: skins/default/templates/feedback.html:41 -#: skins/default/templates/feedback.html:63 +#: templates/feedback.html:55 +msgid "(Please solve the captcha)" +msgstr "(ПожалуйÑта введити капчу)" + +#: templates/feedback.html:63 msgid "Send Feedback" +msgstr "Отправить" + +#: templates/groups.html:3 templates/groups.html.py:6 +#: templates/question/sidebar.html:121 +#: templates/tags/list_bulk_tag_subscription.html:15 +msgid "Groups" +msgstr "" + +#: templates/groups.html:11 +msgid "All groups" msgstr "" -"Отправить" -#: skins/default/templates/import_data.html:2 -#: skins/default/templates/import_data.html:4 +#: templates/groups.html:13 +msgid "all groups" +msgstr "" + +#: templates/groups.html:15 +#, fuzzy +msgid "My groups" +msgstr "ÐаÑтройки групп" + +#: templates/groups.html:17 +#, fuzzy +msgid "my groups" +msgstr "ÐаÑтройки групп" + +#: templates/groups.html:25 +msgid "" +"Tip: to create a new group - please go to some user profile and add the new " +"group there. That user will be the first member of the group" +msgstr "" + +#: templates/groups.html:30 +msgid "Group" +msgstr "" + +#: templates/groups.html:31 +#, fuzzy +msgid "Number of members" +msgstr "раз" + +#: templates/help.html:2 templates/help.html.py:4 +msgid "Help" +msgstr "Помощь" + +#: templates/help.html:7 +#, python-format +msgid "Welcome %(username)s," +msgstr "ЗдравÑтвуйте %(username)s," + +#: templates/help.html:9 +msgid "Welcome," +msgstr "Добро пожаловать," + +#: templates/help.html:13 +#, python-format +msgid "Thank you for using %(app_name)s, here is how it works." +msgstr "" +"СпаÑибо вам что иÑпользуете %(app_name)s, дальше немного о том как Ñто " +"работает." + +#: templates/help.html:16 +#, fuzzy +msgid "How questions, answers and comments work" +msgstr "Разрешить отвечать и комментировать по email" + +#: templates/help.html:18 +msgid "" +"This site is for asking and answering questions, not for open-ended " +"discussions." +msgstr "Ðтот Ñайт Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов и ответов на них, не Ð´Ð»Ñ Ð´Ð¾Ð»Ð³Ð¸Ñ… диÑкуÑÑий." + +#: templates/help.html:19 +msgid "" +"We encourage everyone to use “question†space for asking and “answer†for " +"answering." +msgstr "" +"Мы призываем каждого иÑпользовать меÑто “вопроÑÐ¾Ð²â€ Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов, а меÑто Ð´Ð»Ñ " +"â€œÐ¾Ñ‚Ð²ÐµÑ‚Ð¾Ð²â€ Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð¾Ð² ÑоответÑтвенно." + +#: templates/help.html:22 +msgid "" +"Despite that, each question and answer can be commented – \n" +" the comments are good for the limited discussions." +msgstr "" +"ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° Ñто, каждый Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ ответ может быть прокомментирован - " +"комментарии хороши Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… диÑкуÑÑий." + +#: templates/help.html:26 +#, fuzzy +msgid "Please search before asking your questions" +msgstr "Ð’Ñ‹ вÑегда можете задать Ñвой вопроÑ!" + +#: templates/help.html:27 +msgid "" +"Type your question in the search bar and see whether a similar question has " +"been asked before" +msgstr "" + +#: templates/help.html:29 +msgid "Search has advanced capabilities:" +msgstr "" + +#: templates/help.html:31 +msgid "to search in title - enter [title: your text]" +msgstr "" + +#: templates/help.html:32 +msgid "to search by tags - enter [tag: sometag] or #sometag" +msgstr "" + +#: templates/help.html:33 +msgid "" +"to search by user - enter [user: somename] or @somename or @\"some name\"" +msgstr "" + +#: templates/help.html:35 +msgid "" +"In addition, it is possible to click on tags to add them to the search query." +msgstr "" + +#: templates/help.html:37 +msgid "" +"Finally, a separate tag search box is available in the side bar of the main " +"page, where the search tags can be entered as well" +msgstr "" + +#: templates/help.html:40 +msgid "" +"<em>Important!!!</em> All search terms are combined with a logical \"AND\" " +"expression - to narrow the search by adding new terms." +msgstr "" + +#: templates/help.html:42 +msgid "Voting" +msgstr "" + +#: templates/help.html:44 +#, python-format +msgid "" +"Voting in %(app_name)s helps to select best answers and thank most helpful " +"users." +msgstr "" +"ГолоÑование в %(app_name)s помогает найти лучшие ответы и отблагодарить " +"наиболее полезным пользователÑм." + +#: templates/help.html:47 +#, python-format +msgid "" +"Please vote when you find helpful information,\n" +" it really helps the %(app_name)s community." +msgstr "" +"ПожалуйÑта голоÑуйте когда найдёте полезную информацию,\n" +" Ñто дейÑтвительно помогает ÑообщеÑтву %(app_name)s." + +#: templates/help.html:51 +msgid "Other topics" +msgstr "" + +#: templates/help.html:53 +#, fuzzy +msgid "" +"You can @mention users anywhere in the text to point their attention,\n" +" follow users and conversations and report inappropriate content by " +"flagging it." +msgstr "" +"Кроме того, вы можете @упоминать пользователей в текÑте, чтобы привлечь их " +"внимание, подпиÑывайтеÑÑŒ на пользователей и разговоры, и уведомлÑйте о " +"неумеÑтном Ñодержании Ð¾Ñ‚Ð¼ÐµÑ‡Ð°Ñ ÐµÐ³Ð¾." + +#: templates/help.html:56 +msgid "Enjoy." +msgstr "ÐаÑлаждайтеÑÑŒ." + +#: templates/import_data.html:2 templates/import_data.html.py:4 msgid "Import StackExchange data" msgstr "Импорт данных StackExchange" -#: skins/default/templates/import_data.html:13 +#: templates/import_data.html:13 msgid "" "<em>Warning:</em> if your database is not empty, please back it up\n" " before attempting this operation." @@ -4546,7 +5607,7 @@ msgstr "" "<em>Внимание:</em> еÑли ваша база данных не пуÑта , пожалуйÑта Ñделайте " "резервную копию перед тем как подтверждать Ñту операцию." -#: skins/default/templates/import_data.html:16 +#: templates/import_data.html:16 msgid "" "Upload your stackexchange dump .zip file, then wait until\n" " the data import completes. This process may take several minutes.\n" @@ -4560,11 +5621,11 @@ msgstr "" "текÑтовом формате.\n" " " -#: skins/default/templates/import_data.html:25 +#: templates/import_data.html:25 msgid "Import data" msgstr "Импорт данных" -#: skins/default/templates/import_data.html:27 +#: templates/import_data.html:27 msgid "" "In the case you experience any difficulties in using this import tool,\n" " please try importing your data via command line: <code>python manage." @@ -4575,192 +5636,83 @@ msgstr "" "командной Ñтроки: <code>python manage.py load_stackexchange path/to/your-" "data.zip</code>" -#: skins/default/templates/instant_notification.html:1 -#, python-format -msgid "<p>Dear %(receiving_user_name)s,</p>" -msgstr "<p>Уважаемый %(receiving_user_name)s,</p>" - -#: skins/default/templates/instant_notification.html:3 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s left a <a href=\"%(post_url)s\">new comment</a>:</" -"p>\n" -msgstr "" -"\n" -"<p>%(update_author_name)s оÑтавить <a href=\"%(post_url)s\">новый " -"комментарий</a>:</p>\n" - -#: skins/default/templates/instant_notification.html:8 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s left a <a href=\"%(post_url)s\">new comment</a></" -"p>\n" -msgstr "" -"\n" -"<p>%(update_author_name)s оÑтавить <a href=\"%(post_url)s\">новый " -"комментарий</a></p>\n" +#: templates/list_suggested_tags.html:11 +#, fuzzy +msgid "Tag" +msgstr "ТÑги" -#: skins/default/templates/instant_notification.html:13 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s answered a question \n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#: templates/list_suggested_tags.html:12 +msgid "Suggested by" msgstr "" -"\n" -"<p>%(update_author_name)s ответил на вопроÑ\n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -#: skins/default/templates/instant_notification.html:19 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s posted a new question \n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -msgstr "" -"\n" -"<p>%(update_author_name)s задал новый вопроÑ\n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#: templates/list_suggested_tags.html:13 +#, fuzzy +msgid "Your decision" +msgstr "верÑÐ¸Ñ Ð¿Ñ€Ð°Ð²ÐºÐ¸" -#: skins/default/templates/instant_notification.html:25 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s updated an answer to the question\n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -msgstr "" -"\n" -"<p>%(update_author_name)s обновил ответ на вопроÑ\n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -"\n" +#: templates/list_suggested_tags.html:14 +#, fuzzy +msgid "Suggested tag was used for questions" +msgstr "Создал Ñ‚Ñг, который иÑпользуетÑÑ Ð² %(num)s вопроÑах" -#: skins/default/templates/instant_notification.html:31 -#, python-format -msgid "" -"\n" -"<p>%(update_author_name)s updated a question \n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#: templates/list_suggested_tags.html:34 templates/list_suggested_tags.html:45 +msgid "Accept" msgstr "" -"\n" -"<p>%(update_author_name)s обновил вопроÑ\n" -"<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -#: skins/default/templates/instant_notification.html:37 -#, python-format -msgid "" -"\n" -"<div>%(content_preview)s</div>\n" -"<p>Please note - you can easily <a href=\"%(user_subscriptions_url)s" -"\">change</a>\n" -"how often you receive these notifications or unsubscribe. Thank you for your " -"interest in our forum!</p>\n" +#: templates/list_suggested_tags.html:35 templates/list_suggested_tags.html:46 +msgid "Reject" msgstr "" -"\n" -"<div>%(content_preview)s</div>\n" -"<p>Обратите внимание - вы можете <a href=" -"\"%(user_subscriptions_url)s\">изменить</a>\n" -"уÑÐ»Ð¾Ð²Ð¸Ñ Ñ€Ð°ÑÑылки или отпиÑатьÑÑ Ð²Ð¾Ð²Ñе. СпаÑибо за ваш Ð¸Ð½Ñ‚ÐµÑ€ÐµÑ Ðº нашему " -"форуму!</p>\n" - -#: skins/default/templates/instant_notification.html:42 -msgid "<p>Sincerely,<br/>Forum Administrator</p>" -msgstr "<p>С уважением,<br/>ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¤Ð¾Ñ€ÑƒÐ¼Ð°</p>" -#: skins/default/templates/macros.html:25 -#: skins/default/templates/macros.html:5 -#, python-format -msgid "Share this question on %(site)s" -msgstr "" -"ПоделитьÑÑ Ñтим вопроÑом на %(site)s" - -#: skins/default/templates/macros.html:16 -#: skins/default/templates/macros.html:436 -#, python-format -msgid "follow %(alias)s" -msgstr "подпиÑатÑÑ %(alias)s" - -#: skins/default/templates/macros.html:19 -#: skins/default/templates/macros.html:439 -#, python-format -msgid "unfollow %(alias)s" -msgstr "отменить подпиÑку %(alias)s" +#: templates/list_suggested_tags.html:38 +#, fuzzy +msgid "There are no questions with this tag yet" +msgstr "Ðеотвеченных вопроÑов нет" -#: skins/default/templates/macros.html:20 -#: skins/default/templates/macros.html:440 +#: templates/list_suggested_tags.html:62 #, python-format -msgid "following %(alias)s" -msgstr "подпиÑан %(alias)s" - -#: skins/default/templates/macros.html:63 -#: skins/default/templates/widgets/user_long_score_and_badge_summary.html:3 -msgid "karma:" -msgstr "" -"карма:" - -#: skins/default/templates/macros.html:67 -#: skins/default/templates/widgets/user_long_score_and_badge_summary.html:7 -msgid "badges:" +msgid "Apply tag \"%(name)s\" to all above questions" msgstr "" -"награды:" -#: skins/default/templates/macros.html:143 -#: skins/default/templates/macros.html:144 -#: skins/default/templates/macros.html:531 -#: skins/default/templates/macros.html:532 -#: skins/default/templates/macros.html:570 -#: skins/default/templates/macros.html:571 -msgid "previous" -msgstr "предыдущаÑ" +#: templates/list_suggested_tags.html:63 +#, fuzzy +msgid "Reject tag" +msgstr "ÑброÑить Ñ‚Ñги" -#: skins/default/templates/macros.html:155 -#: skins/default/templates/macros.html:543 -#: skins/default/templates/macros.html:582 -msgid "current page" -msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница" +#: templates/list_suggested_tags.html:71 templates/tags.html:10 +#: templates/tags.html.py:36 +msgid "Nothing found" +msgstr "Ðичего не найдено" -#: skins/default/templates/macros.html:157 -#: skins/default/templates/macros.html:164 +#: templates/macros.html:5 #, python-format -msgid "page number %(num)s" -msgstr "Ñтраница номер %(num)s" +msgid "Share this question on %(site)s" +msgstr "ПоделитьÑÑ Ñтим вопроÑом на %(site)s" -#: skins/default/templates/macros.html:168 -#: skins/default/templates/macros.html:556 -#: skins/default/templates/macros.html:595 -msgid "next page" -msgstr "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" +#: templates/macros.html:44 +msgid "current number of votes" +msgstr "текущее чиÑло голоÑов" -#: skins/default/templates/macros.html:179 -msgid "posts per page" -msgstr "Ñообщений на Ñтранице" +#: templates/macros.html:57 +msgid "anonymous user" +msgstr "анонимный пользователь" -#: skins/default/templates/macros.html:211 templatetags/extra_tags.py:43 -#: skins/default/templates/macros.html:507 -#, python-format -msgid "%(username)s gravatar image" -msgstr "%(username)s Gravatar" +#: templates/macros.html:94 templates/macros.html.py:113 +msgid "asked" +msgstr "ÑпроÑил" -#: skins/default/templates/macros.html:220 -#: skins/default/templates/macros.html:516 -#, python-format -msgid "%(username)s's website is %(url)s" -msgstr "" -"%(url)s - вебÑайт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" +#: templates/macros.html:96 templates/macros.html.py:115 +msgid "answered" +msgstr "ответил" -#: skins/default/templates/macros.html:232 -#: skins/default/templates/macros.html:46 -msgid "anonymous user" -msgstr "анонимный пользователь" +#: templates/macros.html:98 templates/macros.html.py:117 +msgid "posted" +msgstr "опубликовал" -#: skins/default/templates/macros.html:260 -#: skins/default/templates/macros.html:79 +#: templates/macros.html:104 msgid "this post is marked as community wiki" msgstr "поÑÑ‚ отмечен как вики ÑообщеÑтва" -#: skins/default/templates/macros.html:263 -#: skins/default/templates/macros.html:82 +#: templates/macros.html:107 #, python-format msgid "" "This post is a wiki.\n" @@ -4768,956 +5720,547 @@ msgid "" msgstr "" "Ðтот поÑÑ‚ - вики. Любой Ñ ÐºÐ°Ñ€Ð¼Ð¾Ð¹ >%(wiki_min_rep)s может улучшить его." -#: skins/default/templates/macros.html:269 -#: skins/default/templates/macros.html:88 -msgid "asked" -msgstr "ÑпроÑил" - -#: skins/default/templates/macros.html:271 -#: skins/default/templates/macros.html:90 -msgid "answered" -msgstr "ответил" - -#: skins/default/templates/macros.html:273 -#: skins/default/templates/macros.html:92 -msgid "posted" -msgstr "опубликовал" - -#: skins/default/templates/macros.html:304 -#: skins/default/templates/macros.html:122 +#: templates/macros.html:149 msgid "updated" msgstr "обновил" -#: skins/default/templates/macros.html:380 -#: skins/default/templates/macros.html:202 -#, python-format -msgid "see questions tagged '%(tag)s'" +#: templates/macros.html:264 templates/macros.html.py:270 +#, fuzzy +msgid "Leave this group" +msgstr "ÐаÑтройки групп" + +#: templates/macros.html:265 templates/macros.html.py:267 +#: templates/macros.html:286 +msgid "Join this group" msgstr "" -"Ñмотри вопроÑÑ‹ Ñ Ñ‚ÐµÐ³Ð°Ð¼Ð¸ '%(tag)s' " -#: skins/default/templates/macros.html:425 views/readers.py:238 -#: skins/default/templates/widgets/question_summary.html:12 -msgid "view" -msgid_plural "views" -msgstr[0] "" -"проÑм." -msgstr[1] "" -"проÑм." -msgstr[2] "" -"проÑм." +#: templates/macros.html:266 templates/macros.html.py:271 +#: templates/macros.html:281 +msgid "You are a member" +msgstr "" -#: skins/default/templates/macros.html:442 views/readers.py:235 -#: skins/default/templates/widgets/question_summary.html:29 -msgid "answer" -msgid_plural "answers" -msgstr[0] "ответ" -msgstr[1] "ответа" -msgstr[2] "ответов" +#: templates/macros.html:273 +#, fuzzy +msgid "Cancel application" +msgstr "Проверка Email" -#: skins/default/templates/macros.html:453 views/readers.py:232 -#: skins/default/templates/widgets/question_summary.html:40 -msgid "vote" -msgid_plural "votes" -msgstr[0] "голоÑ" -msgstr[1] "голоÑа" -msgstr[2] "голоÑов" +#: templates/macros.html:274 templates/macros.html.py:283 +msgid "Waiting approval" +msgstr "" -#: skins/default/templates/macros.html:488 -#: skins/default/templates/macros.html:304 +#: templates/macros.html:276 templates/macros.html.py:277 +#: templates/macros.html:288 +msgid "Ask to join" +msgstr "" + +#: templates/macros.html:317 +#, python-format +msgid "see questions tagged '%(tag)s'" +msgstr "Ñмотри вопроÑÑ‹ Ñ Ñ‚ÐµÐ³Ð°Ð¼Ð¸ '%(tag)s' " + +#: templates/macros.html:424 msgid "delete this comment" msgstr "удалить Ñтот комментарий" -#: skins/default/templates/macros.html:499 -#: skins/default/templates/question.html:80 -#: skins/default/templates/question.html:242 -#: skins/default/templates/revisions.html:37 -#: skins/common/templates/question/answer_controls.html:41 -#: skins/common/templates/question/question_controls.html:36 -#: skins/default/templates/macros.html:311 -#: skins/default/templates/revisions.html:38 -#: skins/default/templates/revisions.html:41 +#: templates/macros.html:431 templates/revisions.html:38 +#: templates/revisions.html.py:41 templates/question/answer_controls.html:5 +#: templates/question/question_controls.html:1 msgid "edit" msgstr "редактировать" -#: skins/default/templates/macros.html:517 -#: skins/default/templates/macros.html:525 -#: skins/default/templates/question.html:511 -msgid "add comment" -msgstr "добавить" +#: templates/macros.html:435 +#, fuzzy +msgid "convert to answer" +msgstr "Принимать ÑобÑтвенный ответ" -#: skins/default/templates/macros.html:518 +#: templates/macros.html:571 #, python-format -msgid "see <strong>%(counter)s</strong> more" -msgid_plural "see <strong>%(counter)s</strong> more" -msgstr[0] "Ñмотреть еще <strong>%(counter)s</strong>" -msgstr[1] "Ñмотреть еще <strong>%(counter)s</strong>" -msgstr[2] "Ñмотреть еще <strong>%(counter)s</strong>" +msgid "follow %(alias)s" +msgstr "подпиÑатÑÑ %(alias)s" -#: skins/default/templates/macros.html:520 +#: templates/macros.html:574 #, python-format -msgid "see <strong>%(counter)s</strong> more comment" -msgid_plural "" -"see <strong>%(counter)s</strong> more comments\n" -" " -msgstr[0] "" -"Ñмотреть ещё <strong>%(counter)s</strong> комментарий" -msgstr[1] "" -"Ñмотреть ещё <strong>%(counter)s</strong> комментариÑ" -msgstr[2] "" -"Ñмотреть ещё <strong>%(counter)s</strong> комментариев" +msgid "unfollow %(alias)s" +msgstr "отменить подпиÑку %(alias)s" -#: skins/default/templates/macros.html:660 -msgid "one of these is required" -msgstr "необходим Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из" +#: templates/macros.html:575 +#, python-format +msgid "following %(alias)s" +msgstr "подпиÑан %(alias)s" -#: skins/default/templates/macros.html:672 -#: skins/common/templates/widgets/edit_post.html:32 -msgid "(required)" -msgstr "(обÑзательно)" +#: templates/macros.html:653 templatetags/extra_tags.py:44 +#, python-format +msgid "%(username)s gravatar image" +msgstr "%(username)s Gravatar" -#: skins/default/templates/macros.html:696 -#: skins/common/templates/widgets/edit_post.html:58 -msgid "Toggle the real time Markdown editor preview" -msgstr "Включить/выключить предварительный проÑмотр текÑта" +#: templates/macros.html:662 +#, python-format +msgid "%(username)s's website is %(url)s" +msgstr "%(url)s - вебÑайт Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" + +#: templates/macros.html:677 templates/macros.html.py:678 +#: templates/macros.html:716 templates/macros.html.py:717 +msgid "previous" +msgstr "предыдущаÑ" -#: skins/default/templates/macros.html:708 -#: skins/default/templates/macros.html:607 +#: templates/macros.html:689 templates/macros.html.py:728 +msgid "current page" +msgstr "Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ Ñтраница" + +#: templates/macros.html:691 templates/macros.html.py:698 +#: templates/macros.html:730 templates/macros.html.py:737 +#, python-format +msgid "page %(num)s" +msgstr "Ñтраница номер %(num)s" + +#: templates/macros.html:702 templates/macros.html.py:741 +msgid "next page" +msgstr "ÑÐ»ÐµÐ´ÑƒÑŽÑ‰Ð°Ñ Ñтраница" + +#: templates/macros.html:753 #, python-format msgid "responses for %(username)s" msgstr "ответы пользователю %(username)s" -#: skins/default/templates/macros.html:711 +#: templates/macros.html:756 #, python-format -msgid "you have a new response" -msgid_plural "you nave %(response_count)s new responses" -msgstr[0] "У Ð²Ð°Ñ %(response_count)s новое Ñообщение" -msgstr[1] "У Ð²Ð°Ñ %(response_count)s новых ÑообщениÑ" -msgstr[2] "У Ð²Ð°Ñ %(response_count)s новых Ñообщений" +msgid "you have %(response_count)s new response" +msgid_plural "you have %(response_count)s new responses" +msgstr[0] "вы получили новый ответ" +msgstr[1] "вы получили %(response_count)s новых ответа" +msgstr[2] "вы получили %(response_count)s новых ответов" -#: skins/default/templates/macros.html:714 -#: skins/default/templates/macros.html:613 +#: templates/macros.html:759 msgid "no new responses yet" msgstr "новых ответов нет" -#: skins/default/templates/macros.html:729 -#: skins/default/templates/macros.html:730 -#: skins/default/templates/macros.html:628 -#: skins/default/templates/macros.html:629 +#: templates/macros.html:774 templates/macros.html.py:775 #, python-format msgid "%(new)s new flagged posts and %(seen)s previous" -msgstr "" -"%(new)s новых помеченых Ñообщений и %(seen)s предыдущих" +msgstr "%(new)s новых помеченых Ñообщений и %(seen)s предыдущих" -#: skins/default/templates/macros.html:732 -#: skins/default/templates/macros.html:733 -#: skins/default/templates/macros.html:631 -#: skins/default/templates/macros.html:632 +#: templates/macros.html:777 templates/macros.html.py:778 #, python-format msgid "%(new)s new flagged posts" msgstr "%(new)s новых неумеÑтных Ñообщений" -#: skins/default/templates/macros.html:738 -#: skins/default/templates/macros.html:739 -#: skins/default/templates/macros.html:637 -#: skins/default/templates/macros.html:638 +#: templates/macros.html:783 templates/macros.html.py:784 #, python-format msgid "%(seen)s flagged posts" msgstr "%(seen)s неумеÑтных Ñообщений" -#: skins/default/templates/main_page.html:11 -#: skins/default/templates/main_page/headline.html:2 -#: skins/default/templates/main_page/headline.html:18 +#: templates/main_page.html:11 msgid "Questions" -msgstr "" - -#: skins/default/templates/privacy.html:3 -#: skins/default/templates/privacy.html:5 views/meta.py:106 -msgid "Privacy policy" -msgstr "" -"Политика конфиденциальноÑти" - -#: skins/default/templates/question.html:27 -#: skins/default/templates/question.html:28 -#: skins/default/templates/question.html:43 -#: skins/default/templates/question.html:45 -msgid "i like this post (click again to cancel)" -msgstr "мне понравилÑÑ Ñтот поÑÑ‚ (щелкните Ñнова, чтобы отменить)" - -#: skins/default/templates/question.html:30 -#: skins/default/templates/question.html:47 -#: skins/default/templates/question.html:193 -#: skins/default/templates/macros.html:33 -msgid "current number of votes" -msgstr "текущее чиÑло голоÑов" - -#: skins/default/templates/question.html:39 -#: skins/default/templates/question.html:40 -#: skins/default/templates/question.html:52 -#: skins/default/templates/question.html:53 -msgid "i dont like this post (click again to cancel)" -msgstr "мне не понравилÑÑ Ñтот поÑÑ‚ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" - -#: skins/default/templates/question.html:83 -#: skins/default/templates/question.html:89 -#: skins/common/templates/question/question_controls.html:35 -msgid "retag" -msgstr "изменить теги" - -#: skins/default/templates/question.html:96 -#: skins/common/templates/question/question_controls.html:6 -msgid "reopen" -msgstr "открыть" - -#: skins/default/templates/question.html:100 -#: skins/common/templates/question/question_controls.html:8 -#: skins/default/templates/user_profile/user_inbox.html:67 -msgid "close" -msgstr "закрыть" - -#: skins/default/templates/question.html:105 -#: skins/default/templates/question.html:246 -#: skins/common/templates/question/answer_controls.html:26 -#: skins/common/templates/question/answer_controls.html:35 -#: skins/common/templates/question/question_controls.html:14 -#: skins/common/templates/question/question_controls.html:20 -#: skins/common/templates/question/question_controls.html:27 -msgid "" -"report as offensive (i.e containing spam, advertising, malicious text, etc.)" -msgstr "" -"Ñообщить о Ñпаме (Ñ‚.е. ÑообщениÑÑ… Ñодержащих Ñпам, рекламу, вредоноÑные " -"ÑÑылки и Ñ‚.д.)" - -#: skins/default/templates/question.html:106 -#: skins/default/templates/question.html:247 -#: skins/common/templates/question/answer_controls.html:28 -#: skins/common/templates/question/answer_controls.html:37 -#: skins/common/templates/question/question_controls.html:22 -#: skins/common/templates/question/question_controls.html:29 -msgid "flag offensive" -msgstr "Ñпам" - -#: skins/default/templates/question.html:113 -#: skins/common/templates/question/answer_controls.html:13 -#: skins/common/templates/question/question_controls.html:4 -msgid "undelete" -msgstr "воÑÑтановить" - -#: skins/default/templates/question.html:113 -#: skins/default/templates/authopenid/signin.html:162 -#: skins/common/templates/authopenid/signin.html:177 -#: skins/common/templates/question/answer_controls.html:13 -#: skins/common/templates/question/question_controls.html:4 -msgid "delete" -msgstr "удалить" - -#: skins/default/templates/question.html:150 -#, python-format -msgid "" -"The question has been closed for the following reason \"%(close_reason)s\" by" -msgstr "Ð’Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» закрыт по Ñледующим причинам \"%(close_reason)s\", автор:" - -#: skins/default/templates/question.html:152 -#: skins/common/templates/question/closed_question_info.html:4 -#, python-format -msgid "close date %(closed_at)s" -msgstr "дата закрытиÑ: %(closed_at)s" - -#: skins/default/templates/question.html:158 -#, python-format -msgid "" -"\n" -" %(counter)s Answer:\n" -" " -msgid_plural "" -"\n" -" %(counter)s Answers:\n" -" " -msgstr[0] "" -"\n" -"%(counter)s Ответ:\n" -" " -msgstr[1] "" -"\n" -"%(counter)s Ответа:" -msgstr[2] "" -"\n" -"%(counter)s Ответов:" - -#: skins/default/templates/question.html:166 -#: skins/default/templates/question/answer_tab_bar.html:14 -msgid "oldest answers will be shown first" -msgstr "" -"Ñамые Ñтарые ответы будут показаны первыми" +msgstr "вопроÑÑ‹" -#: skins/default/templates/question.html:166 -msgid "oldest answers" -msgstr "" -"Ñамые Ñтарые ответы" - -#: skins/default/templates/question.html:168 -#: skins/default/templates/question/answer_tab_bar.html:17 -msgid "newest answers will be shown first" -msgstr "" -"Ñамые новые ответы будут показаны первыми" - -#: skins/default/templates/question.html:168 -msgid "newest answers" -msgstr "" -"Ñамые новые ответы" - -#: skins/default/templates/question.html:170 -#: skins/default/templates/question/answer_tab_bar.html:20 -msgid "most voted answers will be shown first" -msgstr "" -"ответы Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом голоÑов будут показаны первыми" - -#: skins/default/templates/question.html:170 -msgid "popular answers" -msgstr "" -"популÑрные ответы" - -#: skins/default/templates/question.html:191 -#: skins/default/templates/question.html:192 -msgid "i like this answer (click again to cancel)" -msgstr "мне нравитÑÑ Ñтот ответ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" - -#: skins/default/templates/question.html:202 -#: skins/default/templates/question.html:203 -msgid "i dont like this answer (click again to cancel)" -msgstr "мне не нравитÑÑ Ñтот ответ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" - -#: skins/default/templates/question.html:211 -#: skins/default/templates/question.html:212 -msgid "mark this answer as favorite (click again to undo)" -msgstr "отметить Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐºÐ°Ðº интереÑный (еще раз - чтобы удалить закладку)" - -#: skins/default/templates/question.html:237 -msgid "answer permanent link" -msgstr "поÑтоÑÐ½Ð½Ð°Ñ ÑÑылка на ответ" - -#: skins/default/templates/question.html:238 -#: skins/common/templates/question/answer_controls.html:7 -msgid "permanent link" -msgstr "поÑтоÑÐ½Ð½Ð°Ñ ÑÑылка" - -#: skins/default/templates/question.html:255 -#: skins/common/templates/question/answer_controls.html:2 -msgid "swap with question" -msgstr "" -"поменÑÑ‚ÑŒ меÑтами Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñом" - -#: skins/default/templates/question.html:295 -#: skins/default/templates/question/sharing_prompt_phrase.html:2 -#, python-format -msgid "" -"Know someone who can answer? Share a <a href=\"%(question_url)s\">link</a> " -"to this question via" -msgstr "" -"Знаете кого-то кто может ответить? ПоделитеÑÑŒ <a href=\"%(question_url)s" -"\">ÑÑылкой</a> на Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ‡ÐµÑ€ÐµÐ·" - -#: skins/default/templates/question.html:301 -#: skins/default/templates/question/sharing_prompt_phrase.html:8 -msgid " or" -msgstr "" -" или" - -#: skins/default/templates/question.html:303 -#: skins/default/templates/question/sharing_prompt_phrase.html:10 -msgid "email" -msgstr "" -"email" - -#: skins/default/templates/question.html:318 -#: skins/default/templates/question.html:320 -msgid "Notify me once a day when there are any new answers" -msgstr "" -"<strong>Информировать менÑ</strong> раз в день, еÑли еÑÑ‚ÑŒ новые ответы" - -#: skins/default/templates/question.html:322 -msgid "Notify me weekly when there are any new answers" -msgstr "Еженедельно информировать о новых ответах" - -#: skins/default/templates/question.html:324 -msgid "Notify me immediately when there are any new answers" -msgstr "" -"<strong>Информировать менÑ</strong> немедленно, еÑли еÑÑ‚ÑŒ новый ответ" - -#: skins/default/templates/question.html:331 -#: skins/default/templates/question/subscribe_by_email_prompt.html:11 -msgid "once you sign in you will be able to subscribe for any updates here" -msgstr "" -"<span class='strong'>ЗдеÑÑŒ</span> (когда Ð’Ñ‹ авторизированы) Ð’Ñ‹ можете " -"подпиÑатÑÑ Ð½Ð° переодичеÑкие почтовые Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñтом вопроÑе" - -#: skins/default/templates/question.html:341 -#: skins/default/templates/question/new_answer_form.html:16 -msgid "Login/Signup to Answer" -msgstr "" -"Войти / ЗарегиÑтрироватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ ответить" - -#: skins/default/templates/question.html:349 -#: skins/default/templates/question/new_answer_form.html:24 -msgid "Your answer" -msgstr "Ваш ответ" +#: templates/question.html:204 +msgid "post a comment / <strong>some</strong> more" +msgstr "добавить комментарий / открыть ещё <strong>неÑколько</strong>" -#: skins/default/templates/question/new_answer_form.html:26 -msgid "Be the first one to answer this question!" -msgstr "Будьте первым, кто ответит на Ñтот вопроÑ!" +#: templates/question.html:207 +msgid "see <strong>some</strong> more" +msgstr "открыть ещё <strong>неÑколько</strong>" -#: skins/default/templates/question.html:357 -msgid "you can answer anonymously and then login" -msgstr "" -"<span class='strong big'>Ð’Ñ‹ можете ответить анонимно</span> - ваш ответ " -"будет Ñохранён within вмеÑте Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ÑеÑÑией и опубликуетÑÑ Ð¿Ð¾Ñле того как " -"вы войдёте или зарегиÑтрируетеÑÑŒ. ПожалуйÑта поÑтарайтеÑÑŒ дать " -"<strong>полезный ответ</strong>, Ð´Ð»Ñ Ð´Ð¸ÑкуÑÑи, <strong>пожалуйÑта " -"иÑпользуйте кометарии</strong> и <strong>и не забывайте о голоÑовании</" -"strong> (поÑле того как вы войдёте)!" - -#: skins/default/templates/question.html:361 -msgid "answer your own question only to give an answer" -msgstr "" -"<span class='big strong'>Ð’Ñ‹ конечно можете ответить на Ñвой вопроÑ</span>, " -"но пожалуйÑта убедитеÑÑŒ что вы<strong>ответили</strong>. Помните что вы " -"вÑегда можете <strong>переÑмотреть Ñвой ​​вопроÑ</strong>. ПожалуйÑта " -"<strong>иÑпользуйте комментарии Ð´Ð»Ñ Ð¾Ð±ÑуждениÑ</strong> и <strong>и не " -"забывайте голоÑовать</strong> за те ответы что вам понравилиÑÑŒ или те " -"что не понравилиÑÑŒ! " - -#: skins/default/templates/question.html:363 -msgid "please only give an answer, no discussions" -msgstr "" -"<span class='big strong'>ПожалуйÑта ÑтарайтеÑÑŒ дать ÑущеÑтвенный ответ</" -"span>. ЕÑли вы хотите напиÑать комментарий на Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ, тогда " -"<strong>иÑпользуйте комментарии</strong>. ПожалуйÑта помните что вы вÑегда " -"можете <strong>переÑмотреть ваши ответы</strong> — не надо отвечать на " -"один Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹. Также, пожалуйÑта <strong>не забывайте голоÑовать</" -"strong> — Ñто дейÑтвительно помогает найти лучшие ответы и вопроÑÑ‹!" - -#: skins/default/templates/question.html:370 -msgid "Login/Signup to Post Your Answer" -msgstr "Войти / ЗарегиÑтрироватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ ответить" +#: templates/question.html:211 templates/question.html.py:311 +msgid "post a comment" +msgstr "добавить комментарий" -#: skins/default/templates/question.html:373 -#: skins/default/templates/question.html:387 -#: skins/default/templates/question.html:135 -#: skins/default/templates/question/content.html:40 +#: templates/question.html:230 templates/question/content.html:42 msgid "Answer Your Own Question" msgstr "Ответьте на ÑобÑтвенный вопроÑ" -#: skins/default/templates/question.html:375 -msgid "Answer the question" -msgstr "Ответить на вопроÑ" - -#: skins/default/templates/question.html:395 -#: skins/default/templates/question/sidebar.html:6 -msgid "Question tools" -msgstr "ÐаÑтройка подпиÑок" - -#: skins/default/templates/question.html:398 -#: skins/default/templates/question/sidebar.html:9 -msgid "click to unfollow this question" -msgstr "нажмите, чтобы отпиÑатьÑÑ" - -#: skins/default/templates/question.html:399 -#: skins/default/templates/question/sidebar.html:10 -msgid "Following" -msgstr " ✓ ПодпиÑаны" - -#: skins/default/templates/question.html:400 -#: skins/default/templates/question/sidebar.html:11 -msgid "Unfollow" -msgstr "✗ ОтпиÑатьÑÑ" - -#: skins/default/templates/question.html:404 -#: skins/default/templates/question/sidebar.html:15 -msgid "click to follow this question" -msgstr "нажмите, чтобы подпиÑатьÑÑ" - -#: skins/default/templates/question.html:405 -#: skins/default/templates/question/sidebar.html:16 -msgid "Follow" -msgstr "ПодпиÑатьÑÑ" - -#: skins/default/templates/question.html:412 -#: skins/default/templates/question/sidebar.html:23 -#, python-format -msgid "%(count)s follower" -msgid_plural "%(count)s followers" -msgstr[0] "" -"%(count)s подпиÑчик" -msgstr[1] "" -"%(count)s подпиÑчика" -msgstr[2] "" -"%(count)s подпиÑчиков" - -#: skins/default/templates/question.html:418 -#: skins/default/templates/question/sidebar.html:29 -msgid "email the updates" -msgstr "Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð° почту" - -#: skins/default/templates/question.html:421 -#: skins/default/templates/question/sidebar.html:32 -msgid "" -"<strong>Here</strong> (once you log in) you will be able to sign up for the " -"periodic email updates about this question." -msgstr "ПодпиÑатьÑÑ Ð½Ð° обновление по почте можно только поÑле региÑтрации" - -#: skins/default/templates/question/sidebar.html:37 -msgid "subscribe to this question rss feed" -msgstr "подпиÑатьÑÑ Ð½Ð° Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ rss" - -#: skins/default/templates/question.html:427 -msgid "subsribe to rss feed" -msgstr "Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ rss" - -#: skins/default/templates/question.html:436 -msgid "Question tags" -msgstr "ВопроÑÑ‹" - -#: skins/default/templates/question.html:458 -msgid "Stats:" -msgstr "СтатиÑтика" - -#: skins/default/templates/question.html:460 -msgid "question asked" -msgstr "" -"Задан" - -#: skins/default/templates/question.html:463 -msgid "question was seen" -msgstr "" -"ПроÑмотрен" - -#: skins/default/templates/question.html:463 -#: skins/default/templates/question/sidebar.html:51 -msgid "times" -msgstr "раз" - -#: skins/default/templates/question.html:466 -msgid "last updated" -msgstr "поÑледнее обновление" +#: templates/question.html:235 +msgid "Post Your Answer" +msgstr "Ваш ответ" -#: skins/default/templates/question.html:477 -#: skins/default/templates/question/sidebar.html:62 -msgid "Related questions" -msgstr "" -"Похожие вопроÑÑ‹:" +#: templates/question.html:241 templates/widgets/ask_form.html:46 +msgid "Login/Signup to Post" +msgstr "Войти/ЗарегиÑтрироватьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°" -#: skins/default/templates/question_edit.html:4 -#: skins/default/templates/question_edit.html:9 +#: templates/question_edit.html:4 templates/question_edit.html.py:9 msgid "Edit question" msgstr "Изменить вопроÑ" -#: skins/default/templates/question_retag.html:3 -#: skins/default/templates/question_retag.html:5 -msgid "Change tags" +#: templates/question_edit.html:52 +#, fuzzy +msgid "Change language" msgstr "Измененить Ñ‚Ñги" -#: skins/default/templates/question_retag.html:21 +#: templates/question_retag.html:3 templates/question_retag.html.py:5 +msgid "Retag question" +msgstr "Изменить теги" + +#: templates/question_retag.html:21 msgid "Retag" msgstr "изменить теги" -#: skins/default/templates/question_retag.html:28 +#: templates/question_retag.html:28 msgid "Why use and modify tags?" msgstr "Зачем иÑпользовать и изменÑÑ‚ÑŒ теги?" -#: skins/default/templates/question_retag.html:30 +#: templates/question_retag.html:30 msgid "Tags help to keep the content better organized and searchable" msgstr "" -"ТÑги помагают организовать Ñодержание и делать его более легким Ð´Ð»Ñ " -"поиÑка" +"ТÑги помагают организовать Ñодержание и делать его более легким Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка" -#: skins/default/templates/question_retag.html:32 +#: templates/question_retag.html:32 msgid "tag editors receive special awards from the community" -msgstr "" -"редакторы тегов получат Ñпециальные награды от ÑообщеÑтва" +msgstr "редакторы тегов получат Ñпециальные награды от ÑообщеÑтва" -#: skins/default/templates/question_retag.html:59 +#: templates/question_retag.html:59 msgid "up to 5 tags, less than 20 characters each" msgstr "до 5 тегов, менее 20 Ñимволов каждый" -#: skins/default/templates/reopen.html:3 skins/default/templates/reopen.html:5 +#: templates/reopen.html:4 templates/reopen.html.py:6 msgid "Reopen question" msgstr "Переоткрыть вопроÑ" -#: skins/default/templates/reopen.html:6 -msgid "Title" -msgstr "" -"Заголовок" - -#: skins/default/templates/reopen.html:11 -#, python-format +#: templates/reopen.html:12 +#, fuzzy, python-format msgid "" "This question has been closed by \n" -" <a href=\"%(closed_by_profile_url)s\">%(closed_by_username)s</a>\n" +" <a href=\"%(closed_by_profile_url)s\">%(username)s</a>\n" msgstr "" "Ðтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» закрыт пользователем\n" " <a href=\"%(closed_by_profile_url)s\">%(closed_by_username)s</a>\n" -#: skins/default/templates/reopen.html:16 +#: templates/reopen.html:17 msgid "Close reason:" msgstr "Закрыт по причине:" -#: skins/default/templates/reopen.html:19 +#: templates/reopen.html:20 msgid "When:" msgstr "Когда:" -#: skins/default/templates/reopen.html:22 +#: templates/reopen.html:23 msgid "Reopen this question?" msgstr "Открыть повторно Ñтот вопроÑ?" -#: skins/default/templates/reopen.html:26 +#: templates/reopen.html:27 msgid "Reopen this question" msgstr "Открыть повторно Ñтот вопроÑ" -#: skins/default/templates/revisions.html:4 -#: skins/default/templates/revisions.html:7 +#: templates/revisions.html:4 templates/revisions.html.py:7 msgid "Revision history" msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹" -#: skins/default/templates/revisions.html:23 +#: templates/revisions.html:23 msgid "click to hide/show revision" msgstr "нажмите, чтобы Ñкрыть/показать верÑии" -#: skins/default/templates/revisions.html:29 +#: templates/revisions.html:29 #, python-format msgid "revision %(number)s" msgstr "верÑÐ¸Ñ %(number)s" -#: skins/default/templates/subscribe_for_tags.html:3 -#: skins/default/templates/subscribe_for_tags.html:5 +#: templates/subscribe_for_tags.html:3 templates/subscribe_for_tags.html:5 msgid "Subscribe for tags" msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" -#: skins/default/templates/subscribe_for_tags.html:6 +#: templates/subscribe_for_tags.html:6 msgid "Please, subscribe for the following tags:" -msgstr "" -"ПожалуйÑта, подпишитеÑÑŒ на теги:" +msgstr "ПожалуйÑта, подпишитеÑÑŒ на теги:" -#: skins/default/templates/subscribe_for_tags.html:15 +#: templates/subscribe_for_tags.html:15 msgid "Subscribe" msgstr "ПодпиÑатьÑÑ" -#: skins/default/templates/tags.html:4 skins/default/templates/tags.html:11 -#: skins/default/templates/tags.html:10 -msgid "Tag list" -msgstr "СпиÑок тегов" +#: templates/users.html:4 templates/users.html.py:14 +#: templates/tags/list_bulk_tag_subscription.html:13 +msgid "Users" +msgstr "Пользователи" -#: skins/default/templates/tags.html:8 +#: templates/users.html:12 #, python-format -msgid "Tags, matching \"%(stag)s\"" -msgstr "Теги, ÑоответÑвуют \"%(stag)s\"" - -#: skins/default/templates/tags.html:19 -msgid "sorted alphabetically" +msgid "Users in group %(name)s" msgstr "" -"Ñортировать в алфавитном порÑдке" -#: skins/default/templates/tags.html:20 -msgid "by name" -msgstr "" -"по имени" - -#: skins/default/templates/tags.html:25 -msgid "sorted by frequency of tag use" -msgstr "" -"отÑортировано по чаÑтоте иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐ³Ð¾Ð²" +#: templates/users.html:20 +#, fuzzy +msgid "Select/Sort by »" +msgstr "Сорт. по »" -#: skins/default/templates/tags.html:26 -msgid "by popularity" -msgstr "" -"по популÑрноÑти" +#: templates/users.html:25 +#, fuzzy, python-format +msgid "people in group %(name)s" +msgstr "ÐаÑтройки группы: %(name)s" -#: skins/default/templates/tags.html:31 skins/default/templates/tags.html:57 -#: skins/default/templates/tags.html:56 -msgid "Nothing found" -msgstr "Ðичего не найдено" - -#: skins/default/templates/users.html:4 skins/default/templates/users.html:7 -#: skins/default/templates/users.html:6 -msgid "Users" -msgstr "Пользователи" +#: templates/users.html:29 templates/main_page/tab_bar.html:17 +#: templates/tags/header.html:13 +msgid "Sort by »" +msgstr "Сорт. по »" -#: skins/default/templates/users.html:14 +#: templates/users.html:36 msgid "see people with the highest reputation" msgstr "показать пользователей Ñ Ð½Ð°Ð¸Ð²Ñ‹Ñшим рейтингом" -#: skins/default/templates/users.html:14 -#: skins/default/templates/user_profile/user_info.html:30 -msgid "reputation" -msgstr "" -"карма" +#: templates/users.html:37 templates/user_profile/user_info.html:26 +#: templates/user_profile/user_reputation.html:5 +#: templates/user_profile/user_tabs.html:24 +msgid "karma" +msgstr "карма" -#: skins/default/templates/users.html:20 +#: templates/users.html:43 msgid "see people who joined most recently" msgstr "поÑмотреть пользователей которые приÑоединилиÑÑŒ недавно" -#: skins/default/templates/users.html:20 skins/default/templates/users.html:21 +#: templates/users.html:44 msgid "recent" -msgstr "" -"новички" +msgstr "новички" -#: skins/default/templates/users.html:26 +#: templates/users.html:49 msgid "see people who joined the site first" msgstr "поÑмотреть пользователей которые приÑоединилиÑÑŒ раньше" -#: skins/default/templates/users.html:32 +#: templates/users.html:55 msgid "see people sorted by name" msgstr "показать пользователей отÑортированными по имени" -#: skins/default/templates/users.html:32 skins/default/templates/users.html:33 +#: templates/users.html:56 msgid "by username" -msgstr "" -"по имени" +msgstr "по имени" -#: skins/default/templates/users.html:37 skins/default/templates/users.html:39 -#, python-format -msgid "users matching query %(suser)s:" +#: templates/users.html:62 +#, fuzzy, python-format +msgid "users matching query %(search_query)s:" msgstr "пользователей, ÑоответÑтвующих запроÑу, %(suser)s:" -#: skins/default/templates/users.html:40 skins/default/templates/users.html:42 +#: templates/users.html:65 msgid "Nothing found." msgstr "Ðичего не найдено." -#: skins/default/templates/authopenid/changeemail.html:2 -#: skins/default/templates/authopenid/changeemail.html:8 -#: skins/default/templates/authopenid/changeemail.html:36 -msgid "Change email" +#: templates/authopenid/authopenid_macros.html:63 +msgid "Please enter your <span>user name</span>, then sign in" +msgstr "ПожалуйÑта, введите ваше <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</span>, затем войдите" + +#: templates/authopenid/authopenid_macros.html:64 +#: templates/authopenid/signin.html:98 +#: templates/authopenid/widget_signin.html:102 +msgid "(or select another login method above)" +msgstr "(или выберите один из методов входа выше)" + +#: templates/authopenid/authopenid_macros.html:66 +#: templates/authopenid/signin.html:118 +#: templates/authopenid/widget_signin.html:118 +msgid "Sign in" +msgstr "Войти" + +#: templates/authopenid/changeemail.html:2 +#: templates/authopenid/changeemail.html:8 +#: templates/authopenid/changeemail.html:49 +msgid "Change Email" msgstr "Изменить Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" -#: skins/default/templates/authopenid/changeemail.html:10 -#: skins/common/templates/authopenid/changeemail.html:10 +#: templates/authopenid/changeemail.html:10 msgid "Save your email address" msgstr "Сохранить Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" -#: skins/default/templates/authopenid/changeemail.html:15 +#: templates/authopenid/changeemail.html:15 #, python-format -msgid "change %(email)s info" +msgid "" +"<span class=\\\"strong big\\\">Enter your new email into the box below</" +"span> if \n" +"you'd like to use another email for <strong>update subscriptions</strong>.\n" +"<br>Currently you are using <strong>%%(email)s</strong>" msgstr "" -"<span class=\"strong big\">Введите ваш новый email в поле ввода ниже</span> " -"еÑли вы хотите иÑпользовать другой email Ð´Ð»Ñ <strong>почтовых уведомлений</" -"strong>.<br>Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹ иÑпользуете <strong>%(email)s</strong>" -#: skins/default/templates/authopenid/changeemail.html:17 +#: templates/authopenid/changeemail.html:19 #, python-format -msgid "here is why email is required, see %(gravatar_faq_url)s" +msgid "" +"<span class='strong big'>Please enter your email address in the box below.</" +"span>\n" +"Valid email address is required on this Q&A forum. If you like, \n" +"you can <strong>receive updates</strong> on interesting questions or entire\n" +"forum via email. Also, your email is used to create a unique \n" +"<a href='%%(gravatar_faq_url)s'><strong>gravatar</strong></a> image for " +"your\n" +"account. Email addresses are never shown or otherwise shared with anybody\n" +"else." msgstr "" -"<span class='strong big'>ПожалуйÑта введите ваш email в поле ввода ниже.</" -"span> Правильный email нужен на Ñтом форуме ВопроÑов и Ответов. ЕÑли вы " -"хотите, вы можете <strong>получать обновлениÑ</strong> интереÑных вопроÑов " -"или вÑего форума через email. Также, ваш email иÑпользуетÑÑ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы " -"Ñоздать уникальный <a href='%(gravatar_faq_url)s'><strong>аватар</strong></" -"a>, картинку Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ¹ учётной запиÑи. Email никогда не показываетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ " -"пользователÑм или ещё кому-то другому." -#: skins/default/templates/authopenid/changeemail.html:29 -msgid "Your new Email" +#: templates/authopenid/changeemail.html:38 +msgid "" +"<strong>Your new Email:</strong> \n" +"(will <strong>not</strong> be shown to anyone, must be valid)" msgstr "" -"Ваш новый Email" -#: skins/default/templates/authopenid/changeemail.html:29 -msgid "Your Email" -msgstr "Ваш E-mail" +#: templates/authopenid/changeemail.html:41 +msgid "" +"<strong>Your Email</strong> (<i>must be valid, never shown to others</i>)" +msgstr "" -#: skins/default/templates/authopenid/changeemail.html:36 -#: skins/common/templates/authopenid/changeemail.html:49 +#: templates/authopenid/changeemail.html:49 msgid "Save Email" msgstr "Сохранить Email" -#: skins/default/templates/authopenid/changeemail.html:45 -#: skins/common/templates/authopenid/changeemail.html:58 +#: templates/authopenid/changeemail.html:58 msgid "Validate email" -msgstr "" -"Проверить email-адреÑ" +msgstr "Проверить email-адреÑ" -#: skins/default/templates/authopenid/changeemail.html:48 +#: templates/authopenid/changeemail.html:61 #, python-format -msgid "validate %(email)s info or go to %(change_email_url)s" +msgid "" +"<span class=\\\"strong big\\\">An email with a validation link has been sent " +"to \n" +"%%(email)s.</span> Please <strong>follow the emailed link</strong> with " +"your \n" +"web browser. Email validation is necessary to help insure the proper use " +"of \n" +"email on <span class=\\\"orange\\\">Q&A</span>. If you would like to " +"use \n" +"<strong>another email</strong>, please <a \n" +"href='%%(change_email_url)s'><strong>change it again</strong></a>." msgstr "" -"<span class=\"strong big\">Email Ñ ÑÑылкой Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½ " -"%(email)s.</span> ПожалуйÑта <strong>перейдите по ÑÑылки в пиÑьме</strong> в " -"вашем браузере. Проверка Ñлектронной почты необходима Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы " -"убедитьÑÑ Ð² правильноÑти email на форуме <span class=\"orange\">ВопроÑов&" -"Ответов</span>. ЕÑли вы желаете иÑпользовать <strong>другой email</strong>, " -"пожалуйÑта <a href='%(change_email_url)s'><strong>измените его Ñнова</" -"strong></a>." -#: skins/default/templates/authopenid/changeemail.html:52 -#: skins/common/templates/authopenid/changeemail.html:70 +#: templates/authopenid/changeemail.html:70 msgid "Email not changed" msgstr "Email не изменилÑÑ" -#: skins/default/templates/authopenid/changeemail.html:55 +#: templates/authopenid/changeemail.html:73 #, python-format -msgid "old %(email)s kept, if you like go to %(change_email_url)s" +msgid "" +"<span class=\\\"strong big\\\">Your email address %%(email)s has not been " +"changed.\n" +"</span> If you decide to change it later - you can always do it by editing \n" +"it in your user profile or by using the <a \n" +"href='%%(change_email_url)s'><strong>previous form</strong></a> again." msgstr "" -"<span class=\"strong big\">Ваш email Ð°Ð´Ñ€ÐµÑ %(email)s не изменилÑÑ.</span> " -"ЕÑли вы решите изменить его позже - вы вÑегда можете Ñделать Ñто " -"отредактировав ваш профиль или иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ <a " -"href='%(change_email_url)s'><strong>предыдущую форму</strong></a> Ñнова." -#: skins/default/templates/authopenid/changeemail.html:59 -#: skins/common/templates/authopenid/changeemail.html:80 +#: templates/authopenid/changeemail.html:80 msgid "Email changed" msgstr "Email изменен" -#: skins/default/templates/authopenid/changeemail.html:62 +#: templates/authopenid/changeemail.html:83 #, python-format -msgid "your current %(email)s can be used for this" +msgid "" +"\n" +"<span class='big strong'>Your email address is now set to %%(email)s.</" +"span> \n" +"Updates on the questions that you like most will be sent to this address. \n" +"Email notifications are sent once a day or less frequently - only when " +"there \n" +"are any news." msgstr "" -"<span class='big strong'>Ваш email Ð°Ð´Ñ€ÐµÑ Ñ‚ÐµÐ¿ÐµÑ€ÑŒ уÑтановлен в %(email)s.</" -"span> ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² тех вопроÑах что вам нравÑÑ‚ÑÑ Ð±ÑƒÐ´ÑƒÑ‚ идти туда. Почтовые " -"ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÑÑŽÑ‚ÑÑ Ñ€Ð°Ð· в день или реже - только тогда когда еÑÑ‚ÑŒ " -"новоÑти." -#: skins/default/templates/authopenid/changeemail.html:66 -#: skins/common/templates/authopenid/changeemail.html:91 +#: templates/authopenid/changeemail.html:91 msgid "Email verified" msgstr "Email проверен" -#: skins/default/templates/authopenid/changeemail.html:69 -msgid "thanks for verifying email" +#: templates/authopenid/changeemail.html:94 +msgid "" +"<span class=\\\"big strong\\\">Thank you for verifying your email!</span> " +"Now \n" +"you can <strong>ask</strong> and <strong>answer</strong> questions. Also " +"if \n" +"you find a very interesting question you can <strong>subscribe for the \n" +"updates</strong> - then will be notified about changes <strong>once a day</" +"strong>\n" +"or less frequently." msgstr "" -"<span class=\"big strong\">СпаÑибо за то что подтвердили email!</span> " -"Теперь вы можете <strong>Ñпрашивать</strong> и <strong>отвечать</strong> на " -"вопроÑÑ‹. Также еÑли вы найдёте очень интереÑный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð²Ñ‹ можете " -"<strong>подпиÑатьÑÑ Ð½Ð° обновление</strong> - тогда Ð²Ð°Ñ Ð±ÑƒÐ´ÑƒÑ‚ уведомлÑÑ‚ÑŒ " -"<strong>раз в день</strong> или реже." -#: skins/default/templates/authopenid/changeemail.html:73 -msgid "email key not sent" -msgstr "" -"Email ключ не отоÑлан" +#: templates/authopenid/changeemail.html:102 +msgid "Validation email not sent" +msgstr "Емайл Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ адреÑа не выÑлан" -#: skins/default/templates/authopenid/changeemail.html:76 +#: templates/authopenid/changeemail.html:105 #, python-format -msgid "email key not sent %(email)s change email here %(change_link)s" +msgid "" +"<span class='big strong'>Your current email address %%(email)s has been \n" +"validated before</span> so the new key was not sent. You can <a \n" +"href='%%(change_link)s'>change</a> email used for update subscriptions if \n" +"necessary." msgstr "" -"email ключ не отоÑлан на %(email)s, изменить email здеÑÑŒ %(change_link)s" -#: skins/default/templates/authopenid/complete.html:21 -#: skins/default/templates/authopenid/complete.html:23 -#: skins/common/templates/authopenid/complete.html:21 +#: templates/authopenid/complete.html:21 msgid "Registration" msgstr "РегиÑтрациÑ" -#: skins/default/templates/authopenid/complete.html:27 -#, python-format -msgid "register new %(provider)s account info, see %(gravatar_faq_url)s" -msgstr "" -"<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %(provider)s.</" -"span> ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> и Ñохраните Ñвой " -"<strong>email</strong> адреÑ. Сохраненный email Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ " -"вам<strong>подпиÑыватьÑÑ Ð½Ð° изменениÑ</strong> наиболее интереÑных вопроÑов " -"и будет иÑпользоватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ñоздать и получать в дальнейшем уникальное " -"изображение Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ аватара - <a " -"href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" +#: templates/authopenid/complete.html:23 +msgid "User registration" +msgstr "РегиÑтрациÑ" -#: skins/default/templates/authopenid/complete.html:30 -#, python-format -msgid "" -"%(username)s already exists, choose another name for \n" -" %(provider)s. Email is required too, see " -"%(gravatar_faq_url)s\n" -" " +#: templates/authopenid/complete.html:47 +msgid "<strong>Screen Name</strong> (<i>will be shown to others</i>)" msgstr "" -"<p><span class='strong big'>К Ñожалению looks похоже что Ð¸Ð¼Ñ %(username)s " -"иÑпользуетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователем.</span></p><p>ПожалуйÑта выберите другое " -"Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¼ÐµÑте Ñ Ð²Ð°ÑˆÐ¸Ð¼ %(provider)s логином. Также, правильный " -"email Ð°Ð´Ñ€ÐµÑ Ð½ÑƒÐ¶ÐµÐ½ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° форуме <span " -"class='orange'>ВопроÑов&Ответов</span>. Ваш email Ð°Ð´Ñ€ÐµÑ Ð¸ÑпользуетÑÑ Ð´Ð»Ñ " -"того чтобы Ñоздать уникальный <a href='%(gravatar_faq_url)s'><strong>аватар</" -"strong></a>, картинку ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð°ÑÑоциируетÑÑ Ñ Ð²Ð°ÑˆÐµÐ¹ учётной запиÑью. ЕÑли вы " -"хотите, вы можете <strong>получать уведомлениÑ</strong> о интереÑных " -"вопроÑах или о вÑём форуме через email. Email Ð°Ð´Ñ€ÐµÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не показываетÑÑ " -"кому-то ещё.</p>" -#: skins/default/templates/authopenid/complete.html:34 -#, python-format +#: templates/authopenid/complete.html:56 msgid "" -"register new external %(provider)s account info, see %(gravatar_faq_url)s" +"<strong>Email Address</strong> (<i>will <strong>not</strong> be shared " +"with \n" +"anyone, must be valid</i>)\n" +" " msgstr "" -"<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %(provider)s.</" -"span> ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> the same as your " -"%(provider)s login name or choose some other nickname.</p><p>Also, please " -"save a valid <strong>email</strong> address. With the email you can " -"<strong>subscribe for the updates</strong> on the most interesting " -"questions. Email address is also used to create and retrieve your unique " -"avatar image - <a href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>." -"</p>" -#: skins/default/templates/authopenid/complete.html:37 -#, python-format -msgid "register new Facebook connect account info, see %(gravatar_faq_url)s" -msgstr "" -"<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Facebook.</span> " -"ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> и Ñохраните Ñвой " -"<strong>email</strong> адреÑ. Сохраненный email Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ " -"вам<strong>подпиÑыватьÑÑ Ð½Ð° изменениÑ</strong> наиболее интереÑных вопроÑов " -"и будет иÑпользоватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ñоздать и получать в дальнейшем уникальное " -"изображение Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ аватара - <a " -"href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" +#: templates/authopenid/complete.html:71 +#: templates/authopenid/signup_with_password.html:5 +#: templates/authopenid/signup_with_password.html:45 +msgid "Signup" +msgstr "ЗарегиÑтрироватьÑÑ" -#: skins/default/templates/authopenid/complete.html:40 -msgid "This account already exists, please use another." -msgstr "" -"Ðта ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ уже ÑущеÑтвует, пожалуйÑта иÑпользуйте другую." +#: templates/authopenid/confirm_email.txt:1 +msgid "Thank you for registering at our Q&A forum!" +msgstr "Благодарим Ð²Ð°Ñ Ð·Ð° региÑтрацию на нашем Q/A форуме!" -#: skins/default/templates/authopenid/complete.html:59 -msgid "Screen name label" -msgstr "" -"<strong>Логин</strong>(<i>ваш ник, будет показан другим</i>)" +#: templates/authopenid/confirm_email.txt:3 +msgid "Your account details are:" +msgstr "ПодробноÑти вашей учетной запиÑи:" -#: skins/default/templates/authopenid/complete.html:66 -msgid "Email address label" -msgstr "" -"<strong>Email адреÑ</strong> (<i><strong>не</strong> будет показан никому, " -"должен быть правильным</i>)" +#: templates/authopenid/confirm_email.txt:5 +msgid "Username:" +msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:" -#: skins/default/templates/authopenid/complete.html:72 -#: skins/default/templates/authopenid/signup_with_password.html:18 -msgid "receive updates motivational blurb" -msgstr "" -"<strong>Получать Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€ÑƒÐ¼Ð° по email</strong> - Ñто поможет нашему " -"ÑообщеÑтву раÑти и ÑтановитьÑÑ Ð±Ð¾Ð»ÐµÐµ полезным.<br/>По-умолчанию, <span " -"class='orange'>Q&A</span> форум отÑылает<strong> одно пиÑьмо Ñ " -"изменениÑми в неделю</strong> - только, еÑли за Ñто Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾ÑвилиÑÑŒ " -"обновлениÑ.<br/>ЕÑли хотите, измените Ñту наÑтройку ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ð»Ð¸ в любое " -"другое Ð²Ñ€ÐµÐ¼Ñ Ð² Ñвоей учетной запиÑи пользователÑ." +#: templates/authopenid/confirm_email.txt:6 +msgid "Password:" +msgstr "Пароль:" -#: skins/default/templates/authopenid/complete.html:76 -#: skins/default/templates/authopenid/signup_with_password.html:22 -#: skins/common/templates/authopenid/complete.html:64 -#: skins/common/templates/authopenid/signup_with_password.html:46 -msgid "please select one of the options above" -msgstr "" -"пожалуйÑта, выберите один из вариантов выше" +#: templates/authopenid/confirm_email.txt:8 +msgid "Please sign in here:" +msgstr "ПожалуйÑта, войдите здеÑÑŒ:" -#: skins/default/templates/authopenid/complete.html:79 -msgid "Tag filter tool will be your right panel, once you log in." +#: templates/authopenid/confirm_email.txt:11 +#: templates/authopenid/email_validation.txt:13 +msgid "" +"Sincerely,\n" +"Q&A Forum Administrator" +msgstr "С уважением, админиÑтратор форума" + +#: templates/authopenid/email_validation.html:2 +#: templates/authopenid/email_validation.html:3 +#: templates/authopenid/email_validation.txt:1 +msgid "Greetings from the Q&A forum" +msgstr "Ð’Ð°Ñ Ð¿Ñ€Ð¸Ð²ÐµÑ‚Ñтвует Q/A форум" + +#: templates/authopenid/email_validation.html:7 +#: templates/authopenid/email_validation.txt:3 +msgid "To make use of the Forum, please follow the link below:" msgstr "" -"Фильтр тегов будет в правой панели, поÑле того, как вы войдете в ÑиÑтему." +"Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы воÑпользоватьÑÑ Ñ„Ð¾Ñ€ÑƒÐ¼Ð¾Ð¼, пожалуйÑта, перейдите по ÑÑылке ниже:" -#: skins/default/templates/authopenid/complete.html:80 -msgid "create account" +#: templates/authopenid/email_validation.html:11 +#: templates/authopenid/email_validation.txt:7 +msgid "Following the link above will help us verify your email address." +msgstr "ÐŸÐµÑ€ÐµÐ¹Ð´Ñ Ð¿Ð¾ ÑÑылке выше, вы поможете нам проверить ваш email." + +#: templates/authopenid/email_validation.html:13 +#: templates/authopenid/email_validation.txt:9 +msgid "" +"If you believe that this message was sent in mistake - \n" +"no further action is needed. Just ignore this email, we apologize\n" +"for any inconvenience" msgstr "" -"зарегиÑтрироватьÑÑ" +"ЕÑли вы Ñчитаете, что Ñообщение было отправлено по ошибке - никаких " +"дальнейших дейÑтвий не требуетÑÑ. ПроÑто проигнорируйте Ñто пиÑьмо, мы " +"приноÑим Ñвои Ð¸Ð·Ð²Ð¸Ð½ÐµÐ½Ð¸Ñ Ð·Ð° причиненные неудобÑтва." -#: skins/default/templates/authopenid/logout.html:3 -#: skins/common/templates/authopenid/logout.html:3 +#: templates/authopenid/logout.html:3 msgid "Logout" msgstr "Выйти" -#: skins/default/templates/authopenid/logout.html:5 -#: skins/common/templates/authopenid/logout.html:5 +#: templates/authopenid/logout.html:5 msgid "You have successfully logged out" -msgstr "" -"Ð’Ñ‹ уÑпешно вышли из ÑиÑтемы" +msgstr "Ð’Ñ‹ уÑпешно вышли из ÑиÑтемы" -#: skins/default/templates/authopenid/logout.html:7 -#: skins/common/templates/authopenid/logout.html:7 +#: templates/authopenid/logout.html:7 msgid "" "However, you still may be logged in to your OpenID provider. Please logout " "of your provider if you wish to do so." @@ -5725,30 +6268,13 @@ msgstr "" "Тем не менее может Вам может понадобитьÑÑ Ð¾Ñ‚Ð´ÐµÐ»ÑŒÐ½Ð¾ выйти из ÑиÑтемы Ñайтов - " "провайдеров методов авторизации." -#: skins/default/templates/authopenid/macros.html:53 -#: skins/common/templates/authopenid/authopenid_macros.html:63 -msgid "Please enter your <span>user name</span>, then sign in" -msgstr "ПожалуйÑта, введите ваше <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ</span>, затем войдите" - -#: skins/default/templates/authopenid/macros.html:54 -#: skins/common/templates/authopenid/authopenid_macros.html:64 -#: skins/common/templates/authopenid/signin.html:97 -msgid "(or select another login method above)" -msgstr "(или выберите один из методов входа выше)" - -#: skins/default/templates/authopenid/macros.html:56 -#: skins/common/templates/authopenid/authopenid_macros.html:66 -#: skins/common/templates/authopenid/signin.html:113 -msgid "Sign in" -msgstr "Войти" - -#: skins/default/templates/authopenid/signin.html:4 -#: skins/common/templates/authopenid/signin.html:4 +#: templates/authopenid/signin.html:5 +#: templates/authopenid/widget_signin.html:5 msgid "User login" msgstr "Вход выполнен" -#: skins/default/templates/authopenid/signin.html:12 -#: skins/common/templates/authopenid/signin.html:14 +#: templates/authopenid/signin.html:15 +#: templates/authopenid/widget_signin.html:19 #, python-format msgid "" "\n" @@ -5760,8 +6286,8 @@ msgstr "" "strong> %(summary)s...\"</i> <span class=\"strong big\">Ñохранён и будет " "опубликован, как только вы войдёте.</span>" -#: skins/default/templates/authopenid/signin.html:19 -#: skins/common/templates/authopenid/signin.html:21 +#: templates/authopenid/signin.html:22 +#: templates/authopenid/widget_signin.html:26 #, python-format msgid "" "Your question \n" @@ -5772,8 +6298,8 @@ msgstr "" "%(summary)s...\"</i> <span class=\"strong big\">Ñохранён и будет опубликован " "поÑле того, как вы войдёте.</span>" -#: skins/default/templates/authopenid/signin.html:27 -#: skins/common/templates/authopenid/signin.html:31 +#: templates/authopenid/signin.html:31 +#: templates/authopenid/widget_signin.html:36 msgid "" "It's a good idea to make sure that your existing login methods still work, " "or add a new one. Please click any of the icons below to check/change or add " @@ -5783,8 +6309,8 @@ msgstr "" "добавить еще один новый. ПожалуйÑта нажмите на любую иконку раÑположеную " "ниже что бы проверить/изменить или добавить новый метод авторизации " -#: skins/default/templates/authopenid/signin.html:29 -#: skins/common/templates/authopenid/signin.html:33 +#: templates/authopenid/signin.html:33 +#: templates/authopenid/widget_signin.html:38 msgid "" "Please add a more permanent login method by clicking one of the icons below, " "to avoid logging in via email each time." @@ -5792,8 +6318,17 @@ msgstr "" "ПожалуйÑта, добавьте поÑтоÑнный метод входа кликнув по одной из иконок ниже, " "чтобы не входить каждый раз через e-mail." -#: skins/default/templates/authopenid/signin.html:35 -#: skins/common/templates/authopenid/signin.html:39 +#: templates/authopenid/signin.html:37 +#: templates/authopenid/widget_signin.html:42 +msgid "" +"Click on one of the icons below to add a new login method or re-validate an " +"existing one." +msgstr "" +"Ðажмите на одной из иконок ниже чтобы добавить метод входа или проверить уже " +"ÑущеÑтвующий." + +#: templates/authopenid/signin.html:39 +#: templates/authopenid/widget_signin.html:44 msgid "" "You don't have a method to log in right now, please add one or more by " "clicking any of the icons below." @@ -5801,8 +6336,8 @@ msgstr "" "Ðа данный момент вами не выбран ни один из методов входа, добавьте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ " "один кликнув по иконке ниже." -#: skins/default/templates/authopenid/signin.html:38 -#: skins/common/templates/authopenid/signin.html:42 +#: templates/authopenid/signin.html:42 +#: templates/authopenid/widget_signin.html:47 msgid "" "Please check your email and visit the enclosed link to re-connect to your " "account" @@ -5810,160 +6345,133 @@ msgstr "" "ПожалуйÑта, проверьте ваш email и пройдите по ÑÑылке чтобы вновь войти в ваш " "аккаунт" -#: skins/default/templates/authopenid/signin.html:75 -msgid "Please enter your <span>user name and password</span>, then sign in" +#: templates/authopenid/signin.html:90 +#: templates/authopenid/widget_signin.html:94 +msgid "or enter your <span>user name and password</span>, then sign in" msgstr "" -"ПожалуйÑта, введите ваши <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль</span>, затем " -"войдите" +"либо введите ваше <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль</span>, затем войдите" -#: skins/default/templates/authopenid/signin.html:78 -#: skins/common/templates/authopenid/signin.html:100 +#: templates/authopenid/signin.html:94 +#: templates/authopenid/widget_signin.html:98 +msgid "Please, sign in" +msgstr "ПожалуйÑта, войдите здеÑÑŒ" + +#: templates/authopenid/signin.html:104 +#: templates/authopenid/widget_signin.html:105 msgid "Login failed, please try again" msgstr "Вход завершилÑÑ Ð½ÐµÑƒÐ´Ð°Ñ‡ÐµÐ¹, попробуйте ещё раз" -#: skins/common/templates/authopenid/signin.html:104 +#: templates/authopenid/signin.html:109 +#: templates/authopenid/widget_signin.html:109 msgid "Login or email" msgstr "Логин или email" -#: skins/default/templates/authopenid/signin.html:86 -#: skins/common/templates/authopenid/signin.html:108 utils/forms.py:169 +#: templates/authopenid/signin.html:113 +#: templates/authopenid/widget_signin.html:113 utils/forms.py:266 msgid "Password" msgstr "Пароль" -#: skins/default/templates/authopenid/signin.html:91 -msgid "Login" -msgstr "Войти" - -#: skins/default/templates/authopenid/signin.html:102 -#: skins/common/templates/authopenid/signin.html:120 +#: templates/authopenid/signin.html:125 +#: templates/authopenid/widget_signin.html:125 msgid "To change your password - please enter the new one twice, then submit" msgstr "" -"Чтобы изменить ваш пароль, пожалуйÑта, введите новый дважды " -"подтвердите ввод" +"Чтобы изменить ваш пароль, пожалуйÑта, введите новый дважды подтвердите ввод" -#: skins/default/templates/authopenid/signin.html:106 -msgid "Enter new password" -msgstr "Введите новый пароль" +#: templates/authopenid/signin.html:129 +#: templates/authopenid/widget_signin.html:129 +msgid "New password" +msgstr "Ðовый пароль " -#: skins/default/templates/authopenid/signin.html:111 -#: skins/common/templates/authopenid/signin.html:133 +#: templates/authopenid/signin.html:138 +#: templates/authopenid/widget_signin.html:138 msgid "Please, retype" -msgstr "" -"ПожалуйÑта, повторите" +msgstr "ПожалуйÑта, повторите" -#: skins/default/templates/authopenid/signin.html:122 -msgid "... or enter by clicking one of the buttons below" -msgstr "... или войдите, нажав одну из кнопок ниже" - -#: skins/default/templates/authopenid/signin.html:142 -#: skins/common/templates/authopenid/signin.html:157 +#: templates/authopenid/signin.html:162 +#: templates/authopenid/widget_signin.html:162 msgid "Here are your current login methods" msgstr "Ваши текущие методы входа" -#: skins/default/templates/authopenid/signin.html:146 -#: skins/common/templates/authopenid/signin.html:161 +#: templates/authopenid/signin.html:166 +#: templates/authopenid/widget_signin.html:166 msgid "provider" msgstr "провайдер" -#: skins/default/templates/authopenid/signin.html:147 -#: skins/common/templates/authopenid/signin.html:162 +#: templates/authopenid/signin.html:167 +#: templates/authopenid/widget_signin.html:167 msgid "last used" msgstr "поÑледний иÑпользованный" -#: skins/default/templates/authopenid/signin.html:148 -#: skins/common/templates/authopenid/signin.html:163 +#: templates/authopenid/signin.html:168 +#: templates/authopenid/widget_signin.html:168 msgid "delete, if you like" msgstr "удалите, еÑли хотите" -#: skins/default/templates/authopenid/signin.html:164 -#: skins/common/templates/authopenid/signin.html:179 +#: templates/authopenid/signin.html:182 +#: templates/authopenid/widget_signin.html:182 +#: templates/question/answer_controls.html:33 +#: templates/question/question_controls.html:36 +msgid "delete" +msgstr "удалить" + +#: templates/authopenid/signin.html:184 +#: templates/authopenid/widget_signin.html:184 msgid "cannot be deleted" -msgstr "" -"не может быть удалено" +msgstr "не может быть удалено" -#: skins/default/templates/authopenid/signin.html:177 -#: skins/common/templates/authopenid/signin.html:192 +#: templates/authopenid/signin.html:197 +#: templates/authopenid/widget_signin.html:197 msgid "Still have trouble signing in?" msgstr "По-прежнему проблемы Ñо входом ?" -#: skins/default/templates/authopenid/signin.html:182 -#: skins/common/templates/authopenid/signin.html:197 +#: templates/authopenid/signin.html:202 +#: templates/authopenid/widget_signin.html:202 msgid "Please, enter your email address below and obtain a new key" msgstr "ПожалуйÑта, введите ваш email-Ð°Ð´Ñ€ÐµÑ Ð½Ð¸Ð¶Ðµ и получите новый ключ" -#: skins/default/templates/authopenid/signin.html:184 -#: skins/common/templates/authopenid/signin.html:199 +#: templates/authopenid/signin.html:204 +#: templates/authopenid/widget_signin.html:204 msgid "Please, enter your email address below to recover your account" msgstr "" "ПожалуйÑта, введите ваш email-Ð°Ð´Ñ€ÐµÑ Ð½Ð¸Ð¶Ðµ чтобы воÑÑтановить ваш аккаунт" -#: skins/default/templates/authopenid/signin.html:187 -#: skins/common/templates/authopenid/signin.html:202 +#: templates/authopenid/signin.html:207 +#: templates/authopenid/widget_signin.html:207 msgid "recover your account via email" -msgstr "" -"воÑÑтановить ваш аккаунт по email" +msgstr "воÑÑтановить ваш аккаунт по email" -#: skins/default/templates/authopenid/signin.html:198 -#: skins/common/templates/authopenid/signin.html:213 +#: templates/authopenid/signin.html:217 +#: templates/authopenid/widget_signin.html:217 msgid "Send a new recovery key" -msgstr "" -"Отправить новый ключ воÑÑтановлениÑ" +msgstr "Отправить новый ключ воÑÑтановлениÑ" -#: skins/default/templates/authopenid/signin.html:200 -#: skins/common/templates/authopenid/signin.html:215 +#: templates/authopenid/signin.html:219 +#: templates/authopenid/widget_signin.html:219 msgid "Recover your account via email" msgstr "ВоÑÑтановить ваш аккаунт иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ email" -#: skins/default/templates/authopenid/signin.html:212 -msgid "Why use OpenID?" -msgstr "" -"ПлюÑÑ‹ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ OpenID" - -#: skins/default/templates/authopenid/signin.html:215 -msgid "with openid it is easier" -msgstr "" -"С OpenID вам не надо Ñоздавать новое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль." - -#: skins/default/templates/authopenid/signin.html:218 -msgid "reuse openid" -msgstr "" -"С OpenID вы можете иÑпользовать одну учётную запиÑÑŒ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… Ñайтов " -"которые поддерживаю OpenID." - -#: skins/default/templates/authopenid/signin.html:221 -msgid "openid is widely adopted" -msgstr "" -"Более 160 миллионов пользователей иÑпользует OpenID и более 10 Ñ‚Ñ‹ÑÑч Ñайтов " -"его поддерживают." - -#: skins/default/templates/authopenid/signin.html:224 -msgid "openid is supported open standard" -msgstr "" -"OpenID оÑнован на открытом Ñтандарте, поддерживаемом многими организациÑми." - -#: skins/default/templates/authopenid/signin.html:228 -msgid "Find out more" -msgstr "Узнать больше" +#: templates/authopenid/signup_with_password.html:11 +msgid "Please register by clicking on any of the icons below" +msgstr "ПожалуйÑта, зарегиÑтрируйтеÑÑŒ, нажав на любую из иконок ниже" -#: skins/default/templates/authopenid/signin.html:229 -msgid "Get OpenID" -msgstr "Получить OpenID" +#: templates/authopenid/signup_with_password.html:24 +msgid "or create a new user name and password here" +msgstr "или Ñоздайте новый логин и пароль здеÑÑŒ" -#: skins/default/templates/authopenid/signup_with_password.html:4 -#: skins/common/templates/authopenid/complete.html:67 -#: skins/common/templates/authopenid/signup_with_password.html:4 -#: skins/common/templates/authopenid/signup_with_password.html:53 -msgid "Signup" -msgstr "ЗарегиÑтрироватьÑÑ" +#: templates/authopenid/signup_with_password.html:26 +msgid "Create login name and password" +msgstr "Создать Ð¸Ð¼Ñ Ð¸ пароль" -#: skins/default/templates/authopenid/signup_with_password.html:9 -#: skins/common/templates/authopenid/signup_with_password.html:10 -msgid "Please register by clicking on any of the icons below" +#: templates/authopenid/signup_with_password.html:27 +msgid "" +"<span class='strong big'>If you prefer, create your forum login name and \n" +"password here. However</span>, please keep in mind that we also support \n" +"<strong>OpenID</strong> login method. With <strong>OpenID</strong> you can \n" +"simply reuse your external login (e.g. Gmail or AOL) without ever sharing \n" +"your login details with anyone and having to remember yet another password." msgstr "" -"ПожалуйÑта, зарегиÑтрируйтеÑÑŒ, нажав на любую из иконок ниже" -#: skins/default/templates/authopenid/signup_with_password.html:26 -#: skins/common/templates/authopenid/signup_with_password.html:50 +#: templates/authopenid/signup_with_password.html:42 msgid "" "Please read and type in the two words below to help us prevent automated " "account creation." @@ -5971,93 +6479,82 @@ msgstr "" "ПожалуйÑта, перенаберите два Ñлова ниже, чтобы мы могли понÑÑ‚ÑŒ что вы " "человек." -#: skins/default/templates/authopenid/signup_with_password.html:29 -msgid "Create Account" -msgstr "Создать учетную запиÑÑŒ" - -#: skins/default/templates/authopenid/signup_with_password.html:31 -#: skins/common/templates/authopenid/signup_with_password.html:55 +#: templates/authopenid/signup_with_password.html:47 msgid "or" msgstr "или" -#: skins/default/templates/authopenid/signup_with_password.html:32 -msgid "return to login page" -msgstr "вернутьÑÑ Ðº Ñтранице входа" +#: templates/authopenid/signup_with_password.html:48 +msgid "return to OpenID login" +msgstr "вернутьÑÑ Ðº Ñтарнице OpenID входа" -#: skins/default/templates/authopenid/signup_with_password.html:37 -#: skins/common/templates/authopenid/signup_with_password.html:23 -msgid "or create a new user name and password here" +#: templates/authopenid/verify_email.html:2 +#: templates/authopenid/verify_email.html:4 +#, fuzzy +msgid "Confirm email address" +msgstr "ваш email" + +#: templates/authopenid/verify_email.html:6 +msgid "" +"Validation email sent. Please find it and follow the enclosed link.<br/>\n" +" If the link doesn't work - enter the code below:" msgstr "" -"или Ñоздайте новый логин и пароль здеÑÑŒ" -#: skins/default/templates/authopenid/signup_with_password.html:54 -#: skins/common/templates/authopenid/signup_with_password.html:25 -msgid "Create login name and password" -msgstr "Создать Ð¸Ð¼Ñ Ð¸ пароль" +#: templates/authopenid/verify_email.html:11 +#, fuzzy +msgid "Confirm email" +msgstr "не Ñлать email" -#: skins/default/templates/authopenid/signup_with_password.html:55 -msgid "Traditional signup info" +#: templates/authopenid/widget_signin.html:33 +msgid "" +"Choose your favorite service below to sign in using secure OpenID or similar " +"technology. Your external service password always stays confidential and you " +"don't have to rememeber or create another one." msgstr "" -"<span class='strong big'>ЕÑли вы предпочитаете иÑпользовать традиционные " -"методы входа Ñ Ð»Ð¾Ð³Ð¸Ð½Ð¾Ð¼ и паролем.</span> Ðо помните что мы также " -"поддерживаем логин через <strong>OpenID</strong>. ВмеÑте Ñ <strong>OpenID</" -"strong> вы можете легко иÑпользовать другие ваши учётные запиÑи (Ñ‚.к. Gmail " -"или AOL) без надобноÑти делитьÑÑ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ приватными данными или придумывать " -"ещё один пароль." +"Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° на Ñайт выберите Ñлужбу OpenID или подобную ей технологию. Пароль " +"от Ñтой внешней Ñлужбы оÑтанетÑÑ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¼ и вам не нужно запоминать " +"или Ñоздавать ещё один." -#: skins/default/templates/avatar/add.html:3 -#: skins/common/templates/avatar/add.html:3 +#: templates/avatar/add.html:3 msgid "add avatar" msgstr "добавить аватар" -#: skins/default/templates/avatar/add.html:5 -#: skins/common/templates/avatar/add.html:5 +#: templates/avatar/add.html:5 msgid "Change avatar" -msgstr "" -"Сменить аватар" +msgstr "Сменить аватар" -#: skins/default/templates/avatar/add.html:6 -#: skins/default/templates/avatar/change.html:7 -#: skins/common/templates/avatar/add.html:6 -#: skins/common/templates/avatar/change.html:7 +#: templates/avatar/add.html:6 templates/avatar/change.html:7 msgid "Your current avatar: " msgstr "Ваш текущий аватар:" -#: skins/common/templates/avatar/add.html:9 -#: skins/common/templates/avatar/change.html:11 +#: templates/avatar/add.html:9 templates/avatar/change.html:11 msgid "You haven't uploaded an avatar yet. Please upload one now." msgstr "Ð’Ñ‹ ещё не загрузили аватар. ПожалуйÑта загрузите его." -#: skins/common/templates/avatar/add.html:13 +#: templates/avatar/add.html:13 msgid "Upload New Image" msgstr "Загрузить новое изображение" -#: skins/default/templates/avatar/change.html:4 -#: skins/common/templates/avatar/change.html:4 +#: templates/avatar/change.html:4 msgid "change avatar" -msgstr "" -"ПоменÑÑ‚ÑŒ теги вопроÑа" +msgstr "ПоменÑÑ‚ÑŒ теги вопроÑа" -#: skins/common/templates/avatar/change.html:17 +#: templates/avatar/change.html:17 msgid "Choose new Default" msgstr "Выберите новое умолчание" -#: skins/default/templates/avatar/change.html:22 -#: skins/common/templates/avatar/change.html:22 +#: templates/avatar/change.html:22 msgid "Upload" -msgstr "" -"Загрузить" +msgstr "Загрузить" -#: skins/default/templates/avatar/confirm_delete.html:3 -#: skins/common/templates/avatar/confirm_delete.html:2 +#: templates/avatar/confirm_delete.html:2 msgid "delete avatar" msgstr "удалить аватар" -#: skins/common/templates/avatar/confirm_delete.html:4 +#: templates/avatar/confirm_delete.html:4 msgid "Please select the avatars that you would like to delete." msgstr "ПожалуйÑта выберите аватары которые вы хотите удалить." -#: skins/common/templates/avatar/confirm_delete.html:6 +#: templates/avatar/confirm_delete.html:6 #, python-format msgid "" "You have no avatars to delete. Please <a href=\"%(avatar_change_url)s" @@ -6066,326 +6563,386 @@ msgstr "" "У Ð²Ð°Ñ Ð½ÐµÑ‚Ñƒ аватаров Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ. ПожалуйÑта <a href=\"%(avatar_change_url)s" "\">загрузите один</a> ÑейчаÑ." -#: skins/default/templates/avatar/confirm_delete.html:13 -#: skins/common/templates/avatar/confirm_delete.html:12 +#: templates/avatar/confirm_delete.html:12 msgid "Delete These" -msgstr "" -"Удалить выбранные" +msgstr "Удалить выбранные" -#: skins/default/templates/blocks/answer_edit_tips.html:3 -msgid "answer tips" +#: templates/email/ask_for_signature.html:4 +#, python-format +msgid "%(user)s, please reply to this message." msgstr "" -"Советы" -#: skins/default/templates/blocks/answer_edit_tips.html:6 -msgid "please make your answer relevant to this community" +#: templates/email/ask_for_signature.html:9 +msgid "" +"Your post could not be published, because we could not detect signature in " +"your email." msgstr "" -"пожалуйÑта поÑтарайтеÑÑŒ дать ответ который будет интереÑен коллегам по форуму" -#: skins/default/templates/blocks/answer_edit_tips.html:9 -#: skins/default/templates/widgets/answer_edit_tips.html:9 -msgid "try to give an answer, rather than engage into a discussion" +#: templates/email/ask_for_signature.html:10 +msgid "" +"This happened either because this is your first post or you have changed " +"your email signature." msgstr "" -"поÑтарайтеÑÑŒ ответить, а не заниматьÑÑ Ð¾Ð±Ñуждением" -#: skins/default/templates/blocks/answer_edit_tips.html:12 -msgid "please try to provide details" +#: templates/email/ask_for_signature.html:11 +msgid "Please make a simple response, without editing this message." msgstr "" -"включите детали в Ваш ответ" -#: skins/default/templates/blocks/answer_edit_tips.html:15 -#: skins/default/templates/widgets/answer_edit_tips.html:15 -#: skins/default/templates/widgets/question_edit_tips.html:11 -msgid "be clear and concise" -msgstr "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть четким и лаконичным" - -#: skins/default/templates/blocks/answer_edit_tips.html:19 -#: skins/default/templates/blocks/question_edit_tips.html:10 -#: skins/default/templates/widgets/answer_edit_tips.html:20 -#: skins/default/templates/widgets/question_edit_tips.html:16 -msgid "see frequently asked questions" +#: templates/email/ask_for_signature.html:12 +msgid "" +"We will then attempt to detect the signature in your response and you should " +"be able to post." msgstr "" -"поÑмотрите на чаÑто задаваемые вопроÑÑ‹" -#: skins/default/templates/blocks/answer_edit_tips.html:25 -msgid "Markdown tips" -msgstr "ПоддерживаетÑÑ Ñзык разметки - Markdown" +#: templates/email/feedback_email.txt:2 +#, python-format +msgid "" +"\n" +"Hello, this is a %(site_title)s forum feedback message.\n" +msgstr "" +"\n" +"ЗдравÑтвуйте, Ñто Ñообщение, поÑланное через обратную ÑвÑзь форума " +"%(site_title)s\n" -#: skins/default/templates/blocks/answer_edit_tips.html:29 -#: skins/default/templates/widgets/answer_edit_tips.html:31 -#: skins/default/templates/widgets/question_edit_tips.html:26 -msgid "*italic*" -msgstr "*курÑив*" +#: templates/email/footer.html:1 +#, fuzzy, python-format +msgid "Sincerely,<br>%(site_name)s Administrator" +msgstr "С уважением, админиÑтратор форума" -#: skins/default/templates/blocks/answer_edit_tips.html:32 -#: skins/default/templates/widgets/answer_edit_tips.html:34 -#: skins/default/templates/widgets/question_edit_tips.html:29 -msgid "**bold**" +#: templates/email/instant_notification.html:6 +#, fuzzy, python-format +msgid "" +"\n" +"<p style=\"font-size:10px; font-style:italic;\">\n" +"Please note - you can easily <a href=\"%(user_subscriptions_url)s\">change</" +"a>\n" +"how often you receive these notifications or unsubscribe. Thank you for your " +"interest in our forum!</p>\n" msgstr "" -"**жирный шрифт**" +"\n" +"<div>%(content_preview)s</div>\n" +"<p>Обратите внимание - вы можете <a href=\"%(user_subscriptions_url)s" +"\">изменить</a>\n" +"уÑÐ»Ð¾Ð²Ð¸Ñ Ñ€Ð°ÑÑылки или отпиÑатьÑÑ Ð²Ð¾Ð²Ñе. СпаÑибо за ваш Ð¸Ð½Ñ‚ÐµÑ€ÐµÑ Ðº нашему " +"форуму!</p>\n" -#: skins/default/templates/blocks/answer_edit_tips.html:36 -#: skins/default/templates/widgets/answer_edit_tips.html:38 -#: skins/default/templates/widgets/question_edit_tips.html:33 -msgid "*italic* or _italic_" -msgstr "*курÑив* или _курÑив_" +#: templates/email/insufficient_rep_to_post_by_email.html:10 +#, python-format +msgid "%(username)s, your question could not be posted by email just yet." +msgstr "" -#: skins/default/templates/blocks/answer_edit_tips.html:39 -#: skins/default/templates/widgets/answer_edit_tips.html:41 -#: skins/default/templates/widgets/question_edit_tips.html:36 -msgid "**bold** or __bold__" -msgstr "**жирный шрифт** или __жирный шрифт__" +#: templates/email/insufficient_rep_to_post_by_email.html:14 +#, python-format +msgid "" +"To make posts by email, you need to receive about %(min_upvotes)s upvotes." +msgstr "" -#: skins/default/templates/blocks/answer_edit_tips.html:43 -#: skins/common/templates/question/answer_controls.html:8 -#: skins/default/templates/widgets/answer_edit_tips.html:45 -#: skins/default/templates/widgets/question_edit_tips.html:40 -msgid "link" -msgstr "ÑÑылка" +#: templates/email/insufficient_rep_to_post_by_email.html:15 +#, fuzzy, python-format +msgid "At this time, please post your question at %(link)s" +msgstr "Тогда задайте Ñвой вопроÑ!" -#: skins/default/templates/blocks/answer_edit_tips.html:43 -#: skins/default/templates/blocks/answer_edit_tips.html:47 -#: skins/default/templates/widgets/answer_edit_tips.html:45 -#: skins/default/templates/widgets/answer_edit_tips.html:49 -#: skins/default/templates/widgets/question_edit_tips.html:40 -#: skins/default/templates/widgets/question_edit_tips.html:45 -msgid "text" -msgstr "текÑÑ‚" +#: templates/email/macros.html:19 +#, fuzzy, python-format +msgid "Question by %(author)s:" +msgstr "Закладки и информациÑ" -#: skins/default/templates/blocks/answer_edit_tips.html:47 -#: skins/default/templates/widgets/answer_edit_tips.html:49 -#: skins/default/templates/widgets/question_edit_tips.html:45 -msgid "image" -msgstr "изображение" +#: templates/email/macros.html:21 +#, fuzzy, python-format +msgid "" +"\n" +" In reply to %(author)s's question:\n" +" " +msgstr "" +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " -#: skins/default/templates/blocks/answer_edit_tips.html:51 -#: skins/default/templates/widgets/answer_edit_tips.html:53 -#: skins/default/templates/widgets/question_edit_tips.html:49 -msgid "numbered list:" -msgstr "пронумерованный ÑпиÑок:" +#: templates/email/macros.html:26 +#, fuzzy +msgid "Question :" +msgstr "вопроÑÑ‹" -#: skins/default/templates/blocks/answer_edit_tips.html:56 -#: skins/default/templates/widgets/answer_edit_tips.html:58 -#: skins/default/templates/widgets/question_edit_tips.html:54 -msgid "basic HTML tags are also supported" +#: templates/email/macros.html:33 +#, python-format +msgid "Asked by %(author)s:" msgstr "" -"оÑновные теги HTML также поддерживаютÑÑ" -#: skins/default/templates/blocks/answer_edit_tips.html:60 -#: skins/default/templates/blocks/question_edit_tips.html:24 -#: skins/default/templates/widgets/answer_edit_tips.html:63 -#: skins/default/templates/widgets/question_edit_tips.html:59 -msgid "learn more about Markdown" -msgstr "" -"Узнать больше о Markdown" +#: templates/email/macros.html:40 +#, fuzzy +msgid "Tags:" +msgstr "ТÑги" -#: skins/default/templates/blocks/ask_form.html:72 -#: skins/default/templates/widgets/ask_form.html:6 -msgid "login to post question info" +#: templates/email/macros.html:48 +#, fuzzy, python-format +msgid "" +"\n" +" %(author)s's answer:\n" +" " msgstr "" -"<span class=\"strong big\">ПожалуйÑта, начните задавать Ваш Ð²Ð¾Ñ€Ð¿Ð¾Ñ Ð°Ð½Ð¾Ð½Ð¸Ð¼Ð½Ð¾</" -"span>. Когда Ð’Ñ‹ пошлете вопроÑ, Ð’Ñ‹ будете направлены на Ñтраницу " -"авторизации. Ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранён в текущей ÑеÑÑии и будет опубликован " -"как только Ð’Ñ‹ авторизуетеÑÑŒ. Войти или запиÑатьÑÑ Ð½Ð° наш форум очень легко. " -"ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¹Ð¼ÐµÑ‚ не более полминуты а Ð¸Ð·Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ - приблизительно " -"одну минуту." +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " -#: skins/default/templates/blocks/ask_form.html:76 -#, python-format +#: templates/email/macros.html:52 +#, fuzzy, python-format msgid "" -"must have valid %(email)s to post, \n" -"\t\t\t\t\t\t\tsee %(email_validation_faq_url)s\n" -"\t\t\t\t\t\t\t" -msgstr "" -"Ð´Ð»Ñ Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñообщений необходим дейÑтвующий Ð°Ð´Ñ€ÐµÑ %(email)s Ñм. " -"%(email_validation_faq_url)s" +"\n" +" In reply to %(author)s's answer:\n" +" " +msgstr "" +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " + +#: templates/email/macros.html:57 +#, fuzzy, python-format +msgid "Answered by %(author)s:" +msgstr "Отвеченные мной" -#: skins/default/templates/blocks/ask_form.html:100 -msgid "Login/signup to post your question" +#: templates/email/macros.html:64 +#, fuzzy, python-format +msgid "" +"\n" +" %(author)s's comment:\n" +" " msgstr "" -"Войдите/ЗарегиÑтрируйтеÑÑŒ чтобы опубликовать Ваш ворпоÑ" +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " -#: skins/default/templates/blocks/ask_form.html:102 -msgid "Ask your question" -msgstr "Задайте вопроÑ" +#: templates/email/macros.html:68 +#, fuzzy, python-format +msgid "" +"\n" +" In reply to %(author)s's comment:\n" +" " +msgstr "" +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " -#: skins/default/templates/meta/bottom_scripts.html:7 -#, python-format +#: templates/email/macros.html:73 +#, fuzzy, python-format msgid "" -"Please note: %(app_name)s requires javascript to work properly, please " -"enable javascript in your browser, <a href=\"%(noscript_url)s\">here is how</" -"a>" +"\n" +" Commented by %(author)s:\n" +" " msgstr "" -"Заметьте %(app_name)s требует нормальной работы JavaScript, пожалуйÑта " -"включите его в вашем браузере, <a href=\"%(noscript_url)s\">тут опиÑано как " -"Ñто Ñделать</a>" +"<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " +"подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " +"email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто Ð´Ð»Ñ " +"деталей</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить ваш " +"email потом. Ваше Ñообщение будет Ñохранено в очередь. " -#: skins/default/templates/blocks/editor_data.html:5 -#: skins/default/templates/meta/editor_data.html:7 -#, python-format -msgid "each tag must be shorter that %(max_chars)s character" -msgid_plural "each tag must be shorter than %(max_chars)s characters" +#: templates/email/notify_author_about_approved_post.html:20 +msgid "Below is a copy of your post:" +msgstr "" + +#: templates/email/post_as_subthread.html:8 +#, fuzzy, python-format +msgid "" +"\n" +" %(comment)s comment:\n" +" " +msgid_plural "" +"\n" +" %(count)s comments:\n" +" " msgstr[0] "" -"каждый тег должно быть короче чем %(max_chars)s Ñимвол" +"\n" +"%(counter)s Ответ:\n" +" " msgstr[1] "" -"каждый тег должно быть короче чем %(max_chars)s Ñимвола" +"\n" +"%(counter)s Ответа:" msgstr[2] "" -"каждый тег должно быть короче чем %(max_chars)s Ñимволов" +"\n" +"%(counter)s Ответов:" + +#: templates/email/re_welcome_lamson_on.html:2 +#: templates/email/re_welcome_lamson_on.html:3 +#, fuzzy, python-format +msgid "Great, you are ready to use %(site_name)s!" +msgstr "" +"Соедините Ваш аккаунт на %(provider)s Ñ Ð’Ð°ÑˆÐµÐ¹ учетной запиÑью на " +"%(site_name)s" -#: skins/default/templates/blocks/editor_data.html:7 -#: skins/default/templates/meta/editor_data.html:9 +#: templates/email/re_welcome_lamson_on.html:6 #, python-format -msgid "please use %(tag_count)s tag" -msgid_plural "please use %(tag_count)s tags or less" -msgstr[0] "" -"пожалуйÑта иÑпользуйте %(tag_count)s тег" -msgstr[1] "" -"пожалуйÑта введите не более %(tag_count)s тега" -msgstr[2] "" -"пожалуйÑта введите не более %(tag_count)s тегов" +msgid "You can post questions by emailing them at %(ask_address)s." +msgstr "" + +#: templates/email/re_welcome_lamson_on.html:7 +msgid "" +"When you receive update notifications, you will be able to respond to them, " +"also by email." +msgstr "" -#: skins/default/templates/blocks/editor_data.html:8 -#: skins/default/templates/meta/editor_data.html:10 +#: templates/email/re_welcome_lamson_on.html:8 #, python-format msgid "" -"please use up to %(tag_count)s tags, less than %(max_chars)s characters each" +"Of course, you can always visit the %(site_name)s at <a href=\"%(site_url)s" +"\">%(site_url)s</a>" msgstr "" -"пожалуйÑта иÑпользуйте до %(tag_count)s тегов, меньше чем %(max_chars)s " -"Ñимволов каждый" -#: skins/default/templates/blocks/footer.html:4 -#: skins/default/templates/blocks/header_meta_links.html:13 -#: skins/default/templates/widgets/footer.html:38 -msgid "about" +#: templates/email/rejected_post.html:2 templates/email/rejected_post.html:3 +msgid " Your post was rejected. " msgstr "" -"О наÑ" -#: skins/default/templates/blocks/footer.html:6 -#: skins/default/templates/widgets/footer.html:42 -msgid "privacy policy" -msgstr "политика конфиденциальноÑти" +#: templates/email/rejected_post.html:5 +#, fuzzy +msgid "Your post (copied in the end), was rejected for the following reason:" +msgstr "Ðто могло произойти по Ñледующим причинам:" -#: skins/default/templates/blocks/footer.html:15 -#: skins/default/templates/widgets/footer.html:51 -msgid "give feedback" -msgstr "оÑтавить отзыв" +#: templates/email/rejected_post.html:7 +msgid "Here is your original post" +msgstr "" -#: skins/default/templates/widgets/logo.html:3 -msgid "back to home page" -msgstr "вернутьÑÑ Ð½Ð° главную" +#: templates/email/reply_by_email_error.html:1 +msgid "" +"\n" +"<p>The system was unable to process your message successfully, the reason " +"being:<p>\n" +msgstr "" -#: skins/default/templates/widgets/logo.html:4 -#, python-format -msgid "%(site)s logo" -msgstr "%(site)s логотип" +#: templates/email/welcome_lamson_off.html:6 +#: templates/email/welcome_lamson_off.html:7 +#: templates/email/welcome_lamson_on.html:3 +#: templates/email/welcome_lamson_on.html:4 +#, fuzzy, python-format +msgid "Welcome to %(site_name)s!" +msgstr "ЗдравÑтвуйте %(username)s," -#: skins/default/templates/blocks/header.html:20 urls.py:61 -msgid "questions" -msgstr "questions" +#: templates/email/welcome_lamson_off.html:10 +msgid "We look forward to your Questions!" +msgstr "" -#: skins/default/templates/blocks/header.html:30 -#: skins/default/templates/widgets/meta_nav.html:10 -msgid "users" -msgstr "пользователи" +#: templates/email/welcome_lamson_on.html:11 +msgid "" +"Important: <em>Please reply</em> to this message, without editing it. We " +"need this to determine your email signature and that the email address is " +"valid and was typed correctly." +msgstr "" -#: skins/default/templates/blocks/header.html:35 -#: skins/default/templates/widgets/meta_nav.html:15 -msgid "badges" -msgstr "награды" +#: templates/email/welcome_lamson_on.html:14 +#, python-format +msgid "" +"Until we receive the response from you, you will not be able ask or answer " +"questions on %(site_name)s by email." +msgstr "" -#: skins/default/templates/blocks/header.html:38 -msgid "click here to see old astsup forum" -msgstr "Вдохните глоток прошлого - почитайте Ñтарый добрый asterisk-support.ru" +#: templates/embed/ask_by_widget.html:170 +#, fuzzy +msgid "Please enter a descriptive title for your question" +msgstr "пожалуйÑта, введите заголовок, Ñодержащий Ñуть вашего вопроÑа" -#: skins/default/templates/blocks/header.html:39 -msgid "Old AstSup" -msgstr "Ñтарый форум" +#: templates/embed/list_widgets.html:44 +msgid "How to use?" +msgstr "" -#: skins/default/templates/blocks/header.html:44 -msgid "ask a question" +#: templates/embed/list_widgets.html:45 +msgid "" +"\n" +" Just copy the <script> tag provided and paste it in the site where " +"you wan to put it.\n" +" " msgstr "" -"задать вопроÑ" -#: skins/default/templates/blocks/header_meta_links.html:8 -msgid "logout" +#: templates/embed/widget_form.html:3 templates/embed/widget_form.html.py:5 +#, python-format +msgid "%(action)s an %(widget_name)s widget" msgstr "" -"выход" -#: skins/default/templates/blocks/header_meta_links.html:10 -msgid "login" -msgstr "вход" +#: templates/embed/widget_form.html:14 +#: templates/user_profile/user_moderate.html:20 +msgid "Save" +msgstr "Сохранить" -#: skins/default/templates/blocks/header_meta_links.html:15 -#: skins/default/templates/widgets/user_navigation.html:15 -msgid "settings" +#: templates/embed/widgets.html:3 templates/embed/widgets.html.py:5 +#, fuzzy +msgid "Widgets" +msgstr "widgets/" + +#: templates/embed/widgets.html:11 +msgid "" +"Create and embed widgets into your sites, here a list of available widgets." msgstr "" -"наÑтройки" -#: skins/default/templates/blocks/input_bar.html:33 -msgid "search" -msgstr "поиÑк" +#: templates/embed/widgets.html:16 +msgid "Ask a question" +msgstr "СпроÑить" -#: skins/default/templates/blocks/tag_selector.html:4 -#: skins/common/templates/widgets/tag_selector.html:4 -msgid "Interesting tags" -msgstr "Избранные теги" +#: templates/embed/widgets.html:17 templates/embed/widgets.html.py:26 +#, fuzzy +msgid "create" +msgstr "зарегиÑтрироватьÑÑ" -#: skins/default/templates/blocks/tag_selector.html:18 -#: skins/default/templates/blocks/tag_selector.html:34 -#: skins/default/templates/user_profile/user_moderate.html:40 -#: skins/default/templates/user_profile/user_moderate.html:39 -msgid "Add" +#: templates/embed/widgets.html:20 templates/embed/widgets.html.py:29 +#, fuzzy +msgid "view list" +msgstr "ТÑги" + +#: templates/embed/widgets.html:25 +#, fuzzy +msgid "List of questions" +msgstr "Изменить вопроÑ" + +#: templates/group_messaging/email_alert.html:7 +#, python-format +msgid "%(author)s wrote:" msgstr "" -"Добавить" -#: skins/default/templates/blocks/tag_selector.html:20 -#: skins/common/templates/widgets/tag_selector.html:21 -msgid "Ignored tags" -msgstr "Игнорируемые теги" +#: templates/group_messaging/email_alert.html:11 +msgid "" +"To reply please <a class=\"thread-link\" href=\"THREAD_URL_HOLE\">visit your " +"message inbox</a>" +msgstr "" -#: skins/default/templates/blocks/tag_selector.html:36 -#: skins/common/templates/widgets/tag_selector.html:38 -msgid "Display tag filter" -msgstr "Фильтр по тегам" +#: templates/group_messaging/home.html:7 +#: templates/group_messaging/home_thread_details.html:7 +#, fuzzy +msgid "compose" +msgstr "zavershaem/" -msgid "Show only questions from" -msgstr "Фильтр по тегам" +#: templates/group_messaging/macros.html:5 +#, fuzzy, python-format +msgid "You wrote on %(date)s:" +msgstr "%(date)s" -#: skins/default/templates/main_page/content.html:13 -#: skins/default/templates/main_page/questions_loop.html:11 -msgid "Did not find what you were looking for?" -msgstr "Ðе нашли то, что иÑкали?" +#: templates/group_messaging/senders_list.html:3 +#, fuzzy +msgid "Messages by sender:" +msgstr "Сообщение отправлено" -#: skins/default/templates/main_page/content.html:14 -#: skins/default/templates/main_page/questions_loop.html:12 -msgid "Please, post your question!" -msgstr "" -"Тогда задайте Ñвой вопроÑ!" +#: templates/group_messaging/senders_list.html:5 +#: templates/user_inbox/base.html:6 templates/user_profile/user_tabs.html:12 +msgid "inbox" +msgstr "ÑообщениÑ" -#: skins/default/templates/main_page/headline.html:6 -#: skins/default/templates/main_page/headline.html:15 -#: skins/default/templates/main_page/tab_bar.html:10 -msgid "subscribe to the questions feed" -msgstr "подпиÑатьÑÑ Ð½Ð° RSS-канал Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов" +#: templates/group_messaging/senders_list.html:9 +msgid "sent" +msgstr "" -#: skins/default/templates/main_page/headline.html:16 -msgid "rss feed" -msgstr "RSS-канал" +#: templates/group_messaging/senders_list.html:16 +msgid "trash" +msgstr "" -#: skins/default/templates/main_page/headline.html:22 views/readers.py:131 -#: views/readers.py:133 -#, python-format -msgid "%(q_num)s question, tagged" -msgid_plural "%(q_num)s questions, tagged" -msgstr[0] "" -"%(q_num)s вопроÑ, по темам" -msgstr[1] "" -"%(q_num)s вопроÑа, по темам" -msgstr[2] "" -"%(q_num)s вопроÑов, по темам" +#: templates/group_messaging/threads_list.html:25 +msgid "there are no messages yet..." +msgstr "" -#: skins/default/templates/main_page/headline.html:24 views/readers.py:139 -#: skins/default/templates/main_page/headline.html:4 views/readers.py:135 +#: templates/main_page/headline.html:4 views/readers.py:155 #, python-format msgid "%(q_num)s question" msgid_plural "%(q_num)s questions" @@ -6393,422 +6950,886 @@ msgstr[0] "%(q_num)s вопроÑ" msgstr[1] "%(q_num)s вопроÑа" msgstr[2] "%(q_num)s вопроÑов" -#: skins/default/templates/main_page/headline.html:27 -#: skins/default/templates/main_page/headline.html:6 +#: templates/main_page/headline.html:6 #, python-format msgid "with %(author_name)s's contributions" -msgstr "" -"Ñ Ð²ÐºÐ»Ð°Ð´Ð¾Ð¼ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(author_name)s " +msgstr "Ñ Ð²ÐºÐ»Ð°Ð´Ð¾Ð¼ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(author_name)s " + +#: templates/main_page/headline.html:11 +msgid "Tagged" +msgstr "Ð’ тегах" -#: skins/default/templates/main_page/headline.html:39 -#: skins/default/templates/main_page/headline.html:24 +#: templates/main_page/headline.html:22 msgid "Search tips:" msgstr "Советы по поиÑку:" -#: skins/default/templates/main_page/headline.html:42 -#: skins/default/templates/main_page/headline.html:27 +#: templates/main_page/headline.html:25 msgid "reset author" msgstr "ÑÐ±Ñ€Ð¾Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°" -#: skins/default/templates/main_page/headline.html:44 -#: skins/default/templates/main_page/headline.html:47 -#: skins/default/templates/main_page/nothing_found.html:18 -#: skins/default/templates/main_page/nothing_found.html:21 -#: skins/default/templates/main_page/headline.html:29 -#: skins/default/templates/main_page/headline.html:32 +#: templates/main_page/headline.html:27 templates/main_page/headline.html:30 +#: templates/main_page/nothing_found.html:18 +#: templates/main_page/nothing_found.html:21 msgid " or " msgstr "или" -#: skins/default/templates/main_page/headline.html:45 -#: skins/default/templates/main_page/headline.html:30 +#: templates/main_page/headline.html:28 msgid "reset tags" msgstr "ÑброÑить Ñ‚Ñги" -#: skins/default/templates/main_page/headline.html:48 -#: skins/default/templates/main_page/headline.html:51 -#: skins/default/templates/main_page/headline.html:33 -#: skins/default/templates/main_page/headline.html:36 +#: templates/main_page/headline.html:31 templates/main_page/headline.html:34 msgid "start over" msgstr "начать вÑе Ñначала" -#: skins/default/templates/main_page/headline.html:53 -#: skins/default/templates/main_page/headline.html:38 +#: templates/main_page/headline.html:36 msgid " - to expand, or dig in by adding more tags and revising the query." msgstr "" "раÑширить или Ñузить при помощи Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñвоих Ñ‚Ñгов и переÑмотра запроÑов" -#: skins/default/templates/main_page/headline.html:56 -#: skins/default/templates/main_page/headline.html:41 +#: templates/main_page/headline.html:39 msgid "Search tip:" -msgstr "" -"ПодÑказки Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка:" +msgstr "ПодÑказки Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка:" -#: skins/default/templates/main_page/headline.html:56 -#: skins/default/templates/main_page/headline.html:41 +#: templates/main_page/headline.html:39 msgid "add tags and a query to focus your search" -msgstr "" -"укажите в запроÑе Ñ‚Ñги чтобы уточнить результаты поиÑка" +msgstr "укажите в запроÑе Ñ‚Ñги чтобы уточнить результаты поиÑка" -#: skins/default/templates/main_page/nothing_found.html:4 +#: templates/main_page/nothing_found.html:4 msgid "There are no unanswered questions here" -msgstr "" -"Ðеотвеченных вопроÑов нет" +msgstr "Ðеотвеченных вопроÑов нет" -#: skins/default/templates/main_page/nothing_found.html:7 +#: templates/main_page/nothing_found.html:7 msgid "No questions here. " -msgstr "" -"ВопроÑов не найдено" +msgstr "ВопроÑов не найдено" -#: skins/default/templates/main_page/nothing_found.html:8 -msgid "Please star (bookmark) some questions or follow some users." -msgstr "" -"Отметьте вопроÑÑ‹ закладками или Ñледуйте за наиболее интереÑными Вам " -"пользователÑми" +#: templates/main_page/nothing_found.html:8 +msgid "Please follow some questions or follow some users." +msgstr "ПожалуйÑта подпишитеÑÑŒ на некоторые вопроÑÑ‹ или пользователей" -#: skins/default/templates/main_page/nothing_found.html:13 +#: templates/main_page/nothing_found.html:13 msgid "You can expand your search by " msgstr "Ð’Ñ‹ можете раÑширить поиÑк" -#: skins/default/templates/main_page/nothing_found.html:16 +#: templates/main_page/nothing_found.html:16 msgid "resetting author" msgstr "ÑÐ±Ñ€Ð¾Ñ Ð°Ð²Ñ‚Ð¾Ñ€Ð°" -#: skins/default/templates/main_page/nothing_found.html:19 +#: templates/main_page/nothing_found.html:19 msgid "resetting tags" -msgstr "" -"ÑÐ±Ñ€Ð¾Ñ Ñ‚ÐµÐ³Ð¾Ð²" +msgstr "ÑÐ±Ñ€Ð¾Ñ Ñ‚ÐµÐ³Ð¾Ð²" -#: skins/default/templates/main_page/nothing_found.html:22 -#: skins/default/templates/main_page/nothing_found.html:25 +#: templates/main_page/nothing_found.html:22 +#: templates/main_page/nothing_found.html:25 msgid "starting over" msgstr "начать Ñначала" -#: skins/default/templates/main_page/nothing_found.html:30 +#: templates/main_page/nothing_found.html:30 msgid "Please always feel free to ask your question!" msgstr "Ð’Ñ‹ вÑегда можете задать Ñвой вопроÑ!" -#: skins/default/templates/main_page/sidebar.html:30 -#: skins/default/templates/widgets/contributors.html:3 -msgid "Contributors" -msgstr "Ðвторы" +#: templates/main_page/questions_loop.html:9 +msgid "Did not find what you were looking for?" +msgstr "Ðе нашли то, что иÑкали?" + +#: templates/main_page/questions_loop.html:10 +msgid "Please, post your question!" +msgstr "Тогда задайте Ñвой вопроÑ!" -#: skins/default/templates/main_page/sidebar.html:47 -msgid "Related tags" -msgstr "СвÑзанные теги" +#: templates/main_page/tab_bar.html:11 +msgid "subscribe to the questions feed" +msgstr "подпиÑатьÑÑ Ð½Ð° RSS-канал Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов" -#: skins/default/templates/main_page/tab_bar.html:75 -#: skins/default/templates/widgets/scope_nav.html:8 -msgid "see unanswered questions" +#: templates/main_page/tab_bar.html:12 +msgid "RSS" +msgstr "RSS" + +#: templates/main_page/tag_search.html:2 +#, fuzzy +msgid "Tag search" +msgstr "поиÑк" + +#: templates/main_page/tag_search.html:5 +msgid "search" +msgstr "поиÑк" + +#: templates/meta/bottom_scripts.html:7 +#, python-format +msgid "" +"Please note: %(app_name)s requires javascript to work properly, please " +"enable javascript in your browser, <a href=\"%(noscript_url)s\">here is how</" +"a>" msgstr "" -"Ñмотреть неотвеченные вопроÑÑ‹" +"Заметьте %(app_name)s требует нормальной работы JavaScript, пожалуйÑта " +"включите его в вашем браузере, <a href=\"%(noscript_url)s\">тут опиÑано как " +"Ñто Ñделать</a>" -#: skins/default/templates/main_page/tab_bar.html:81 -msgid "see your favorite questions" -msgstr "проÑмотр отмеченные вопроÑÑ‹" +#: templates/meta/editor_data.html:5 +#, python-format +msgid "each tag must be shorter that %(max_chars)s character" +msgid_plural "each tag must be shorter than %(max_chars)s characters" +msgstr[0] "каждый тег должно быть короче чем %(max_chars)s Ñимвол" +msgstr[1] "каждый тег должно быть короче чем %(max_chars)s Ñимвола" +msgstr[2] "каждый тег должно быть короче чем %(max_chars)s Ñимволов" -#: skins/default/templates/user_profile/user.html:13 -#: skins/default/templates/user_profile/user.html:12 +#: templates/meta/editor_data.html:7 #, python-format -msgid "%(username)s's profile" +msgid "please use %(tag_count)s tag" +msgid_plural "please use %(tag_count)s tags or less" +msgstr[0] "пожалуйÑта иÑпользуйте %(tag_count)s тег" +msgstr[1] "пожалуйÑта введите не более %(tag_count)s тега" +msgstr[2] "пожалуйÑта введите не более %(tag_count)s тегов" + +#: templates/meta/editor_data.html:8 +#, python-format +msgid "" +"please use up to %(tag_count)s tags, less than %(max_chars)s characters each" msgstr "" -"профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" +"пожалуйÑта иÑпользуйте до %(tag_count)s тегов, меньше чем %(max_chars)s " +"Ñимволов каждый" -#: skins/default/templates/user_profile/user_banner.html:21 -#: skins/default/templates/user_profile/user_banner.html:38 -msgid "Date" -msgstr "Дата" +#: templates/question/answer_card.html:20 +msgid "This response is published" +msgstr "" + +#: templates/question/answer_controls.html:2 +msgid "swap with question" +msgstr "поменÑÑ‚ÑŒ меÑтами Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñом" + +#: templates/question/answer_controls.html:11 +msgid "remove offensive flag" +msgstr "убрать флаги" + +#: templates/question/answer_controls.html:13 +#: templates/question/question_controls.html:12 +msgid "remove flag" +msgstr "убрать флаг" -#: skins/default/templates/user_profile/user_banner.html:22 -msgid "Views" -msgstr "ПроÑмотров" +#: templates/question/answer_controls.html:18 +#: templates/question/answer_controls.html:26 +#: templates/question/question_controls.html:10 +#: templates/question/question_controls.html:16 +#: templates/question/question_controls.html:23 +msgid "" +"report as offensive (i.e containing spam, advertising, malicious text, etc.)" +msgstr "" +"Ñообщить о Ñпаме (Ñ‚.е. ÑообщениÑÑ… Ñодержащих Ñпам, рекламу, вредоноÑные " +"ÑÑылки и Ñ‚.д.)" -#: skins/default/templates/user_profile/user_banner.html:33 -#: skins/default/templates/user_profile/user_banner.html:73 -msgid "Banner views" -msgstr "ПроÑмотров баннера" +#: templates/question/answer_controls.html:20 +#: templates/question/answer_controls.html:28 +#: templates/question/question_controls.html:18 +#: templates/question/question_controls.html:25 +msgid "flag offensive" +msgstr "Ñпам" -#: skins/default/templates/user_profile/user_banner.html:39 -msgid "Clicks" -msgstr "Кликов" +#: templates/question/answer_controls.html:33 +#: templates/question/question_controls.html:36 +msgid "undelete" +msgstr "воÑÑтановить" -#: skins/default/templates/user_profile/user_banner.html:50 -#: skins/default/templates/user_profile/user_banner.html:77 -msgid "Banner clicks" -msgstr "Кликов по баннеру" +#: templates/question/answer_controls.html:43 +#, fuzzy +msgid "unpublish" +msgstr "[издатель]" -#: skins/default/templates/user_profile/user_banner.html:58 -#: skins/default/templates/user_profile/user_banner.html:61 -#: skins/default/templates/user_profile/user_tabs.html:46 -msgid "banner" -msgstr "баннер" +#: templates/question/answer_controls.html:48 +#, fuzzy +msgid "publish" +msgstr "[издатель]" + +#: templates/question/answer_controls.html:54 +msgid "permanent link" +msgstr "поÑтоÑÐ½Ð½Ð°Ñ ÑÑылка" -#: skins/default/templates/user_profile/user_banner.html:63 -msgid "Banner info" -msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ баннере" +#: templates/question/answer_controls.html:55 +#: templates/widgets/markdown_help.html:20 +msgid "link" +msgstr "ÑÑылка" -#: skins/default/templates/user_profile/user_banner.html:64 -msgid "Your banner is shown on the site." -msgstr "Ваш баннер отображаетÑÑ Ð½Ð° Ñайте." +#: templates/question/answer_controls.html:58 +msgid "more" +msgstr "" -#: skins/default/templates/user_profile/user_banner.html:64 -msgid "Your banner is waiting moderator approval." -msgstr "Ваш баннер ожидает Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð°." +#: templates/question/answer_controls.html:71 +#, fuzzy +msgid "repost as a question comment" +msgstr "добавить комментарий" -#: skins/default/templates/user_profile/user_banner.html:67 -msgid "Confirm banner deletion?" -msgstr "Подтверждаете удаление баннера?" +#: templates/question/answer_controls.html:85 +msgid "repost as a comment under the older answer" +msgstr "" -#: skins/default/templates/user_profile/user_banner.html:69 -msgid "Delete banner" -msgstr "Удалить баннер" +#: templates/question/answer_tab_bar.html:3 +#, python-format +msgid "" +"\n" +" %(counter)s Answer\n" +" " +msgid_plural "" +"\n" +" %(counter)s Answers\n" +" " +msgstr[0] "" +"\n" +" %(counter)s Ответ\n" +" " +msgstr[1] "" +"\n" +" %(counter)s Ответа\n" +" " +msgstr[2] "" +"\n" +" %(counter)s Ответов\n" +" " -#: skins/default/templates/user_profile/user_banner.html:74 -#: skins/default/templates/user_profile/user_banner.html:78 -msgid "For the last 30 days" -msgstr "За поÑледние 30 дней" +#: templates/question/answer_tab_bar.html:11 +msgid "Sort by »" +msgstr "Сорт. по »" -#: skins/default/templates/user_profile/user_banner.html:86 -msgid "Create banner" -msgstr "Создать баннер" +#: templates/question/answer_tab_bar.html:14 +msgid "oldest answers will be shown first" +msgstr "Ñамые Ñтарые ответы будут показаны первыми" -#: skins/default/templates/user_profile/user_edit.html:4 -msgid "Edit user profile" -msgstr "Изменить профиль пользователÑ" +#: templates/question/answer_tab_bar.html:17 +msgid "newest answers will be shown first" +msgstr "Ñамые новые ответы будут показаны первыми" -#: skins/default/templates/user_profile/user_edit.html:7 -msgid "edit profile" -msgstr "изменить профиль" +#: templates/question/answer_tab_bar.html:20 +msgid "most voted answers will be shown first" +msgstr "ответы Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ чиÑлом голоÑов будут показаны первыми" -#: skins/default/templates/user_profile/user_edit.html:17 -#: skins/default/templates/user_profile/user_info.html:21 -#: skins/default/templates/user_profile/user_edit.html:21 -#: skins/default/templates/user_profile/user_info.html:15 -msgid "change picture" -msgstr "изменить изображение" +#: templates/question/answer_vote_buttons.html:6 +#: templates/user_profile/user_stats.html:25 +msgid "this answer has been selected as correct" +msgstr "Ñтот ответ был выбран в качеÑтве правильного" -#: skins/default/templates/user_profile/user_edit.html:20 -#: skins/default/templates/user_profile/user_edit.html:32 -msgid "Registered user" -msgstr "ЗарегиÑтрированный пользователь" +#: templates/question/answer_vote_buttons.html:8 +msgid "mark this answer as correct (click again to undo)" +msgstr "отметить Ñтот ответ как правильный (нажмите ещё раз чтобы отменить)" -#: skins/default/templates/user_profile/user_edit.html:23 -#: skins/default/templates/user_profile/user_edit.html:39 -msgid "Screen Name" +#: templates/question/closed_question_info.html:2 +#, python-format +msgid "" +"The question has been closed for the following reason <b>\"%(close_reason)s" +"\"</b> <i>by" msgstr "" -"Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" +"Ð’Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» закрыт по такой причине:\n" +"<b>\"%(close_reason)s\"</b> <i> " -#: skins/default/templates/user_profile/user_edit.html:83 -#: skins/default/templates/user_profile/user_email_subscriptions.html:21 -#: skins/default/templates/user_profile/user_edit.html:101 -#: skins/default/templates/user_profile/user_email_subscriptions.html:22 -msgid "Update" -msgstr "Обновить" +#: templates/question/closed_question_info.html:4 +#, python-format +msgid "close date %(closed_at)s" +msgstr "дата закрытиÑ: %(closed_at)s" -#: skins/default/templates/user_profile/user_email_subscriptions.html:4 -#: skins/default/templates/user_profile/user_tabs.html:36 -#: skins/default/templates/user_profile/user_tabs.html:42 -msgid "subscriptions" +#: templates/question/content.html:32 +#, fuzzy +msgid "Edit Your Previous Answer" +msgstr "Ваш ответ" + +#: templates/question/content.html:33 +msgid "(only one answer per question is allowed)" msgstr "" -"подпиÑки" -#: skins/default/templates/user_profile/user_email_subscriptions.html:7 -msgid "Email subscription settings" +#: templates/question/new_answer_form.html:15 +msgid "Login/Signup to Answer" +msgstr "Войти / ЗарегиÑтрироватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ ответить" + +#: templates/question/new_answer_form.html:23 +msgid "Your answer" +msgstr "Ваш ответ" + +#: templates/question/new_answer_form.html:25 +msgid "Be the first one to answer this question!" +msgstr "Будьте первым, кто ответит на Ñтот вопроÑ!" + +#: templates/question/new_answer_form.html:31 +msgid "" +"<span class='strong big'>Please start posting your answer anonymously</span> " +"- your answer will be saved within the current session and published after " +"you log in or create a new account. Please try to give a <strong>substantial " +"answer</strong>, for discussions, <strong>please use comments</strong> and " +"<strong>please do remember to vote</strong> (after you log in)!" msgstr "" -"ÐаÑтройка подпиÑок по email" -#: skins/default/templates/user_profile/user_email_subscriptions.html:8 -msgid "email subscription settings info" +#: templates/question/new_answer_form.html:35 +msgid "" +"<span class='big strong'>You are welcome to answer your own question</span>, " +"but please make sure to give an <strong>answer</strong>. Remember that you " +"can always <strong>revise your original question</strong>. Please " +"<strong>use comments for discussions</strong> and <strong>please don't " +"forget to vote :)</strong> for the answers that you liked (or perhaps did " +"not like)!" msgstr "" -"<span class='big strong'>ÐаÑтройки чаÑтоты почтовых уведомлений.</span> " -"Получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ интереÑных вопроÑах через email, <strong><br/" -">помогите ÑообщеÑтву</strong> Ð¾Ñ‚Ð²ÐµÑ‡Ð°Ñ Ð½Ð° вопроÑÑ‹ ваших коллег. ЕÑли вы не " -"хотите получать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° email — выберите 'без email' на вÑех " -"Ñлементах ниже.<br/>Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ тогда, когда еÑÑ‚ÑŒ Ð½Ð¾Ð²Ð°Ñ " -"активноÑÑ‚ÑŒ в выбранных Ñлементах." -#: skins/default/templates/user_profile/user_email_subscriptions.html:22 -msgid "Stop sending email" +#: templates/question/new_answer_form.html:37 +msgid "" +"<span class='big strong'>Please try to give a substantial answer</span>. If " +"you wanted to comment on the question or answer, just <strong>use the " +"commenting tool</strong>. Please remember that you can always <strong>revise " +"your answers</strong> - no need to answer the same question twice. Also, " +"please <strong>don't forget to vote</strong> - it really helps to select the " +"best questions and answers!" msgstr "" -"Ðе Ñлать email" -#: skins/default/templates/user_profile/user_favorites.html:4 -#: skins/default/templates/user_profile/user_tabs.html:24 -#: skins/default/templates/user_profile/user_tabs.html:27 -msgid "followed questions" +#: templates/question/question_controls.html:5 +msgid "retag" +msgstr "изменить тег" + +#: templates/question/question_controls.html:29 +msgid "reopen" +msgstr "переоткрыть" + +#: templates/question/question_controls.html:31 +msgid "close" +msgstr "закрыть" + +#: templates/question/sharing_prompt_phrase.html:2 +#, python-format +msgid "" +"Know someone who can answer? Share a <a href=\"%(question_url)s\">link</a> " +"to this question via" msgstr "" -"закладки" +"Знаете кого-то кто может ответить? ПоделитеÑÑŒ <a href=\"%(question_url)s" +"\">ÑÑылкой</a> на Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ñ‡ÐµÑ€ÐµÐ·" -#: skins/default/templates/user_profile/user_inbox.html:18 -#: skins/default/templates/user_profile/user_tabs.html:10 -#: skins/default/templates/user_profile/user_tabs.html:12 -msgid "inbox" +#: templates/question/sharing_prompt_phrase.html:8 +msgid " or" +msgstr " или" + +#: templates/question/sharing_prompt_phrase.html:10 +msgid "email" +msgstr "email" + +#: templates/question/sidebar.html:8 +msgid "Question tools" +msgstr "Закладки и информациÑ" + +#: templates/question/sidebar.html:11 +msgid "click to unfollow this question" +msgstr "нажмите чтобы прекратить Ñледить за Ñтим вопроÑом" + +#: templates/question/sidebar.html:12 +msgid "Following" +msgstr "ЕÑÑ‚ÑŒ закладка!" + +#: templates/question/sidebar.html:13 +msgid "Unfollow" +msgstr "СнÑÑ‚ÑŒ закладку" + +#: templates/question/sidebar.html:17 +msgid "click to follow this question" +msgstr "нажмите, чтобы добавить закладку" + +#: templates/question/sidebar.html:18 +msgid "Follow" +msgstr "Добавить закладку" + +#: templates/question/sidebar.html:25 +#, python-format +msgid "%(count)s follower" +msgid_plural "%(count)s followers" +msgstr[0] "%(count)s закладка" +msgstr[1] "%(count)s закладки" +msgstr[2] "%(count)s закладок" + +#: templates/question/sidebar.html:37 +msgid "email the updates" +msgstr "получать Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ email" + +#: templates/question/sidebar.html:40 +msgid "" +"<strong>Here</strong> (once you log in) you will be able to sign up for the " +"periodic email updates about this question." +msgstr "получать Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ email" + +#: templates/question/sidebar.html:46 +msgid "subscribe to this question rss feed" +msgstr "ПодпиÑатьÑÑ Ð½Ð° rss канал Ñтого вопроÑа" + +#: templates/question/sidebar.html:47 +msgid "subscribe to rss feed" +msgstr "подпиÑатьÑÑ Ð½Ð° rss ленту новоÑтей" + +#: templates/question/sidebar.html:57 +msgid "Invite" +msgstr "" + +#: templates/question/sidebar.html:63 templates/question/sidebar.html.py:69 +#: templates/user_profile/user_email_subscriptions.html:59 +#: templates/widgets/tag_selector.html:20 +#: templates/widgets/tag_selector.html:37 +#: templates/widgets/tag_selector.html:56 +msgid "add" +msgstr "доб." + +#: templates/question/sidebar.html:65 templates/question/sidebar.html.py:71 +#, fuzzy +msgid "- or -" +msgstr "или" + +#: templates/question/sidebar.html:83 +#, fuzzy +msgid "share with everyone" +msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты (держитÑÑ Ð² Ñекрете):" + +#: templates/question/sidebar.html:94 +msgid "This question is currently shared only with:" +msgstr "" + +#: templates/question/sidebar.html:96 +#, fuzzy +msgid "Individual users" +msgstr "Выбранные мной" + +#: templates/question/sidebar.html:101 +msgid "You" msgstr "" -"ÑообщениÑ" -#: skins/default/templates/user_profile/user_inbox.html:34 +#: templates/question/sidebar.html:108 templates/question/sidebar.html:128 +#, fuzzy +msgid "and" +msgstr "доб." + +#: templates/question/sidebar.html:133 +#, fuzzy, python-format +msgid "%(more_count)s more" +msgstr "(%(comment_count)s комментарий)" + +#: templates/question/sidebar.html:139 +msgid "Public thread" +msgstr "" + +#: templates/question/sidebar.html:140 +#, python-format +msgid "This thread is public, all members of %(site_name)s can read this page." +msgstr "" + +#: templates/question/sidebar.html:148 +msgid "Stats" +msgstr "СтатиÑтика" + +#: templates/question/sidebar.html:150 +msgid "Asked" +msgstr "Задан" + +#: templates/question/sidebar.html:153 +msgid "Seen" +msgstr "ПроÑмотрен" + +#: templates/question/sidebar.html:153 +msgid "times" +msgstr "раз" + +#: templates/question/sidebar.html:156 +msgid "Last updated" +msgstr "Обновлен" + +#: templates/question/sidebar.html:164 +msgid "Related questions" +msgstr "Похожие вопроÑÑ‹:" + +#: templates/question/subscribe_by_email_prompt.html:5 +msgid "Email me when there are any new answers" +msgstr "Информировать Ð¼ÐµÐ½Ñ Ð¾ новых ответах" + +#: templates/question/subscribe_by_email_prompt.html:11 +msgid "" +"<span class='strong'>Here</span> (once you log in) you will be able to sign " +"up for the periodic email updates about this question." +msgstr "" +"<strong>ЗдеÑÑŒ</strong> (когда Ð’Ñ‹ авторизированы) Ð’Ñ‹ можете подпиÑатÑÑ Ð½Ð° " +"переодичеÑкие почтовые Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñтом вопроÑе." + +#: templates/tags/form_bulk_tag_subscription.html:4 +#, fuzzy +msgid "Tag subscriptions" +msgstr "подпиÑки" + +#: templates/tags/form_bulk_tag_subscription.html:6 +#, fuzzy +msgid "Tag Subscriptions" +msgstr "подпиÑки" + +#: templates/tags/header.html:6 +#, python-format +msgid "Tags, matching \"%(stag)s\"" +msgstr "Теги, ÑоответÑвуют \"%(stag)s\"" + +#: templates/tags/header.html:18 +msgid "sorted alphabetically" +msgstr "Ñортировать в алфавитном порÑдке" + +#: templates/tags/header.html:19 +msgid "by name" +msgstr "по имени" + +#: templates/tags/header.html:24 +msgid "sorted by frequency of tag use" +msgstr "отÑортировано по чаÑтоте иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚ÐµÐ³Ð¾Ð²" + +#: templates/tags/header.html:25 +msgid "by popularity" +msgstr "по популÑрноÑти" + +#: templates/tags/header.html:33 templates/tags/header.html.py:34 +msgid "suggested" +msgstr "" + +#: templates/tags/header.html:41 templates/tags/header.html.py:42 +#, fuzzy +msgid "manage subscriptions" +msgstr "подпиÑки" + +#: templates/tags/list_bulk_tag_subscription.html:4 +#, fuzzy +msgid "Manage Tag subscriptions" +msgstr "подпиÑки" + +#: templates/tags/list_bulk_tag_subscription.html:6 +#, fuzzy +msgid "Manage Tag subscription</a> " +msgstr "podpiski/" + +#: templates/tags/list_bulk_tag_subscription.html:6 +#, fuzzy +msgid "Create New" +msgstr "Создать баннер" + +#: templates/tags/list_bulk_tag_subscription.html:11 +msgid "Date" +msgstr "Дата" + +#: templates/tags/list_bulk_tag_subscription.html:17 +#, fuzzy +msgid "Action" +msgstr "меÑтоположение" + +#: templates/tags/list_bulk_tag_subscription.html:48 views/commands.py:747 +#, fuzzy +msgid "Edit" +msgstr "Редактор" + +#: templates/user_inbox/base.html:14 msgid "Sections:" msgstr "Разделы:" -#: skins/default/templates/user_profile/user_inbox.html:38 +#: templates/user_inbox/base.html:19 +#, fuzzy +msgid "messages" +msgstr "soobscheniya/" + +#: templates/user_inbox/base.html:24 #, python-format msgid "forum responses (%(re_count)s)" -msgstr "" -"ответов в форуме (%(re_count)s)" +msgstr "ответов в форуме (%(re_count)s)" -#: skins/default/templates/user_profile/user_inbox.html:43 -#, python-format -msgid "flagged items (%(flag_count)s)" +#: templates/user_inbox/base.html:31 +#, fuzzy, python-format +msgid "flagged items (%(flags_count)s)" msgstr "помеченные пункты (%(flag_count)s)" -#: skins/default/templates/user_profile/user_inbox.html:49 -#: skins/default/templates/user_profile/user_inbox.html:61 +#: templates/user_inbox/base.html:38 +#, fuzzy +msgid "group join requests" +msgstr "Заново открывать Ñвои вопроÑÑ‹" + +#: templates/user_inbox/group_join_requests.html:4 +msgid "inbox - group join requests" +msgstr "" + +#: templates/user_inbox/group_join_requests.html:26 +#, fuzzy +msgid "Approve" +msgstr "одобрен" + +#: templates/user_inbox/group_join_requests.html:41 +msgid "Deny" +msgstr "" + +#: templates/user_inbox/messages.html:104 +#, fuzzy +msgid "inbox - messages" +msgstr "Отправить Ñообщение" + +#: templates/user_inbox/responses_and_flags.html:4 +#, fuzzy +msgid "inbox - responses" +msgstr "профиль - ответы" + +#: templates/user_inbox/responses_and_flags.html:8 msgid "select:" msgstr "выберите:" -#: skins/default/templates/user_profile/user_inbox.html:51 -#: skins/default/templates/user_profile/user_inbox.html:63 +#: templates/user_inbox/responses_and_flags.html:10 msgid "seen" msgstr "прочитанные" -#: skins/default/templates/user_profile/user_inbox.html:52 -#: skins/default/templates/user_profile/user_inbox.html:64 +#: templates/user_inbox/responses_and_flags.html:11 msgid "new" msgstr "новые" -#: skins/default/templates/user_profile/user_inbox.html:53 -#: skins/default/templates/user_profile/user_inbox.html:65 +#: templates/user_inbox/responses_and_flags.html:12 msgid "none" msgstr "нет" -#: skins/default/templates/user_profile/user_inbox.html:54 +#: templates/user_inbox/responses_and_flags.html:15 msgid "mark as seen" -msgstr "" -"отметить как прочитаное" +msgstr "отметить как прочитаное" -#: skins/default/templates/user_profile/user_inbox.html:55 +#: templates/user_inbox/responses_and_flags.html:16 msgid "mark as new" msgstr "отметить как новое" -#: skins/default/templates/user_profile/user_inbox.html:56 +#: templates/user_inbox/responses_and_flags.html:17 msgid "dismiss" msgstr "удалить" -#: skins/default/templates/user_profile/user_info.html:5 -#: skins/default/templates/user_profile/user_info.html:36 +#: templates/user_inbox/responses_and_flags.html:19 +#, fuzzy +msgid "remove flags/approve" +msgstr "удалить заметки" + +#: templates/user_inbox/responses_and_flags.html:23 +msgid "delete post" +msgstr "добавить комментарий" + +#: templates/user_profile/reject_post_dialog.html:4 +#, fuzzy +msgid "Reject the post(s)?" +msgstr "добавить комментарий" + +#: templates/user_profile/reject_post_dialog.html:11 +msgid "1) Enter a brief description of why you are rejecting the post." +msgstr "" + +#: templates/user_profile/reject_post_dialog.html:14 +msgid "2) Please enter details here. This text will be sent to the user." +msgstr "" + +#: templates/user_profile/reject_post_dialog.html:20 +#: templates/user_profile/reject_post_dialog.html:88 +msgid "Use this reason & reject" +msgstr "" + +#: templates/user_profile/reject_post_dialog.html:27 +#: templates/user_profile/reject_post_dialog.html:95 +#, fuzzy +msgid "Use other reason" +msgstr "Закрыт по причине:" + +#: templates/user_profile/reject_post_dialog.html:33 +msgid "Save reason, but do not reject" +msgstr "" + +#: templates/user_profile/reject_post_dialog.html:43 +#, fuzzy +msgid "Please, choose a reason for the rejection." +msgstr "пожалуйÑта Ñделайте Ваш выбор (Ñм. выше)" + +#: templates/user_profile/reject_post_dialog.html:58 +#, fuzzy +msgid "Select this reason" +msgstr "выбрать верÑию" + +#: templates/user_profile/reject_post_dialog.html:65 +#, fuzzy +msgid "Delete this reason" +msgstr "удалить Ñтот комментарий" + +#: templates/user_profile/reject_post_dialog.html:71 +#, fuzzy +msgid "Add a new reason" +msgstr "У Ð²Ð°Ñ %(response_count)s новое Ñообщение" + +#: templates/user_profile/reject_post_dialog.html:81 +msgid "" +"You have selected reason for the rejection <strong>\"<span class=\"selected-" +"reason-title\"></span>\"</strong>. The text below will be sent to the user " +"and the post(s) will be deleted:" +msgstr "" + +#: templates/user_profile/reject_post_dialog.html:101 +#, fuzzy +msgid "Edit this reason" +msgstr "Изменить вопроÑ" + +#: templates/user_profile/user.html:12 +#, python-format +msgid "%(username)s's profile" +msgstr "профиль Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s" + +#: templates/user_profile/user_edit.html:4 +msgid "Edit user profile" +msgstr "Изменить профиль пользователÑ" + +#: templates/user_profile/user_edit.html:7 +msgid "edit profile" +msgstr "изменить профиль" + +#: templates/user_profile/user_edit.html:21 +#: templates/user_profile/user_info.html:15 +msgid "change picture" +msgstr "изменить изображение" + +#: templates/user_profile/user_edit.html:25 +#: templates/user_profile/user_info.html:19 +msgid "remove" +msgstr "удалить" + +#: templates/user_profile/user_edit.html:32 +msgid "Registered user" +msgstr "ЗарегиÑтрированный пользователь" + +#: templates/user_profile/user_edit.html:39 +msgid "Screen Name" +msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" + +#: templates/user_profile/user_edit.html:59 +msgid "(cannot be changed)" +msgstr "(не может быть изменено)" + +#: templates/user_profile/user_edit.html:109 +#: templates/user_profile/user_email_subscriptions.html:23 +msgid "Update" +msgstr "Обновить" + +#: templates/user_profile/user_email_subscriptions.html:5 +#: templates/user_profile/user_tabs.html:44 +msgid "subscriptions" +msgstr "подпиÑки" + +#: templates/user_profile/user_email_subscriptions.html:8 +msgid "Email subscription settings" +msgstr "ÐаÑтройка подпиÑок по email" + +#: templates/user_profile/user_email_subscriptions.html:10 +msgid "" +"<span class='big strong'>Adjust frequency of email updates.</span> Receive " +"updates on interesting questions by email, <strong><br/>help the community</" +"strong> by answering questions of your colleagues. If you do not wish to " +"receive emails - select 'no email' on all items below.<br/>Updates are only " +"sent when there is any new activity on selected items." +msgstr "" + +#: templates/user_profile/user_email_subscriptions.html:24 +msgid "Stop Email" +msgstr "Ðе Ñлать Email" + +#: templates/user_profile/user_email_subscriptions.html:30 +#, fuzzy +msgid "Subscribed languages" +msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" + +#: templates/user_profile/user_email_subscriptions.html:43 +msgid "Save languages" +msgstr "" + +#: templates/user_profile/user_email_subscriptions.html:48 +#, fuzzy +msgid "Subscribed Tags" +msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" + +#: templates/user_profile/user_favorites.html:4 +#: templates/user_profile/user_tabs.html:29 +msgid "followed questions" +msgstr "закладки" + +#: templates/user_profile/user_info.html:38 msgid "update profile" msgstr "обновить профиль" -#: skins/default/templates/user_profile/user_info.html:6 -#: skins/default/templates/user_profile/user_info.html:40 +#: templates/user_profile/user_info.html:42 msgid "manage login methods" msgstr "управление методами входа" -#: skins/default/templates/user_profile/user_info.html:25 -#: skins/default/templates/user_profile/user_edit.html:25 -#: skins/default/templates/user_profile/user_info.html:19 -msgid "remove" -msgstr "удалить" - -#: skins/default/templates/user_profile/user_info.html:44 -#: skins/default/templates/user_profile/user_info.html:53 +#: templates/user_profile/user_info.html:55 msgid "real name" msgstr "наÑтоÑщее имÑ" -#: skins/default/templates/user_profile/user_info.html:49 -msgid "member for" -msgstr "ÑоÑтоит пользователем" +#: templates/user_profile/user_info.html:61 +#, fuzzy +msgid "groups" +msgstr "ÐаÑтройки групп" + +#: templates/user_profile/user_info.html:71 +msgid "add group" +msgstr "" -#: skins/default/templates/user_profile/user_info.html:54 -#: skins/default/templates/user_profile/user_info.html:63 +#: templates/user_profile/user_info.html:76 +msgid "member since" +msgstr "зарегиÑтрирован Ñ" + +#: templates/user_profile/user_info.html:81 msgid "last seen" msgstr "поÑледнее поÑещение" -#: skins/default/templates/user_profile/user_info.html:60 -msgid "user website" -msgstr "" -"веб-Ñтраница" +#: templates/user_profile/user_info.html:87 +msgid "website" +msgstr "Веб-Ñтраница" -#: skins/default/templates/user_profile/user_info.html:65 -#: skins/default/templates/user_profile/user_info.html:75 +#: templates/user_profile/user_info.html:93 msgid "location" msgstr "меÑтоположение" -#: skins/default/templates/user_profile/user_info.html:85 -#: skins/default/templates/user_profile/user_info.html:82 +#: templates/user_profile/user_info.html:100 msgid "age" msgstr "возраÑÑ‚" -#: skins/default/templates/user_profile/user_info.html:86 -#: skins/default/templates/user_profile/user_info.html:83 -msgid "age unit" +#: templates/user_profile/user_info.html:101 +#, python-format +msgid "%(age)s years old" msgstr "" -"лет" -#: skins/default/templates/user_profile/user_info.html:91 -#: skins/default/templates/user_profile/user_info.html:88 +#: templates/user_profile/user_info.html:106 msgid "todays unused votes" -msgstr "" -"неиÑпользованных ÑÐµÐ³Ð¾Ð´Ð½Ñ Ð³Ð¾Ð»Ð¾Ñов" +msgstr "неиÑпользованных ÑÐµÐ³Ð¾Ð´Ð½Ñ Ð³Ð¾Ð»Ð¾Ñов" -#: skins/default/templates/user_profile/user_info.html:92 -#: skins/default/templates/user_profile/user_info.html:89 +#: templates/user_profile/user_info.html:107 msgid "votes left" -msgstr "" -"оÑталоÑÑŒ голоÑов" +msgstr "оÑталоÑÑŒ голоÑов" -#: skins/default/templates/user_profile/user_moderate.html:4 -#: skins/default/templates/user_profile/user_tabs.html:41 -#: skins/default/templates/user_profile/user_tabs.html:48 +#: templates/user_profile/user_moderate.html:4 +#: templates/user_profile/user_tabs.html:50 msgid "moderation" msgstr "модерациÑ" -#: skins/default/templates/user_profile/user_moderate.html:8 +#: templates/user_profile/user_moderate.html:8 #, python-format msgid "%(username)s's current status is \"%(status)s\"" -msgstr "" -"текущий ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s - \"%(status)s\"" +msgstr "текущий ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(username)s - \"%(status)s\"" -#: skins/default/templates/user_profile/user_moderate.html:11 +#: templates/user_profile/user_moderate.html:11 msgid "User status changed" msgstr "Ð¡Ñ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ð»ÑÑ" -#: skins/default/templates/user_profile/user_moderate.html:20 -msgid "Save" -msgstr "Сохранить" - -#: skins/default/templates/user_profile/user_moderate.html:26 -#: skins/default/templates/user_profile/user_moderate.html:25 +#: templates/user_profile/user_moderate.html:25 #, python-format msgid "Your current reputation is %(reputation)s points" -msgstr "" -"Ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ°Ñ€Ð¼Ð° %(reputation)s баллов" +msgstr "Ваша Ñ‚ÐµÐºÑƒÑ‰Ð°Ñ ÐºÐ°Ñ€Ð¼Ð° %(reputation)s баллов" -#: skins/default/templates/user_profile/user_moderate.html:28 -#: skins/default/templates/user_profile/user_moderate.html:27 +#: templates/user_profile/user_moderate.html:27 #, python-format msgid "User's current reputation is %(reputation)s points" -msgstr "" -"Карма Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - %(reputation)s баллов" +msgstr "Карма Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ - %(reputation)s баллов" -#: skins/default/templates/user_profile/user_moderate.html:32 -#: skins/default/templates/user_profile/user_moderate.html:31 +#: templates/user_profile/user_moderate.html:31 msgid "User reputation changed" -msgstr "" -"Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°" +msgstr "Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð°" -#: skins/default/templates/user_profile/user_moderate.html:39 -#: skins/default/templates/user_profile/user_moderate.html:38 +#: templates/user_profile/user_moderate.html:38 msgid "Subtract" msgstr "ОтнÑÑ‚ÑŒ" -#: skins/default/templates/user_profile/user_moderate.html:44 -#: skins/default/templates/user_profile/user_moderate.html:43 +#: templates/user_profile/user_moderate.html:39 +msgid "Add" +msgstr "Добавить" + +#: templates/user_profile/user_moderate.html:43 #, python-format msgid "Send message to %(username)s" msgstr "Отправить Ñообщение Ð´Ð»Ñ %(username)s" -#: skins/default/templates/user_profile/user_moderate.html:45 -#: skins/default/templates/user_profile/user_moderate.html:44 +#: templates/user_profile/user_moderate.html:44 msgid "" "An email will be sent to the user with 'reply-to' field set to your email " "address. Please make sure that your address is entered correctly." @@ -6816,17 +7837,15 @@ msgstr "" "ПиÑьмо будет отправлено пользователю Ñо ÑÑылкой \"Ответить\" на ваш Ð°Ð´Ñ€ÐµÑ " "Ñлектронной почты. ПожалуйÑта, убедитеÑÑŒ, что ваш Ð°Ð´Ñ€ÐµÑ Ð²Ð²ÐµÐ´ÐµÐ½ правильно." -#: skins/default/templates/user_profile/user_moderate.html:47 -#: skins/default/templates/user_profile/user_moderate.html:46 +#: templates/user_profile/user_moderate.html:46 msgid "Message sent" msgstr "Сообщение отправлено" -#: skins/default/templates/user_profile/user_moderate.html:65 -#: skins/default/templates/user_profile/user_moderate.html:64 +#: templates/user_profile/user_moderate.html:64 msgid "Send message" msgstr "Отправить Ñообщение" -#: skins/default/templates/user_profile/user_moderate.html:74 +#: templates/user_profile/user_moderate.html:74 msgid "" "Administrators have privileges of normal users, but in addition they can " "assign/revoke any status to any user, and are exempt from the reputation " @@ -6836,7 +7855,7 @@ msgstr "" "могут назначать/отменÑÑ‚ÑŒ любой ÑÑ‚Ð°Ñ‚ÑƒÑ Ð»ÑŽÐ±Ð¾Ð³Ð¾ пользователÑ, и Ñвободны от " "пределов репутации." -#: skins/default/templates/user_profile/user_moderate.html:77 +#: templates/user_profile/user_moderate.html:77 msgid "" "Moderators have the same privileges as administrators, but cannot add or " "remove user status of 'moderator' or 'administrator'." @@ -6844,30 +7863,32 @@ msgstr "" "У модераторов те же права, что и у админиÑтраторов, но они не могут " "добавлÑÑ‚ÑŒ или удалÑÑ‚ÑŒ ÑÑ‚Ð°Ñ‚ÑƒÑ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." -#: skins/default/templates/user_profile/user_moderate.html:80 +#: templates/user_profile/user_moderate.html:80 msgid "'Approved' status means the same as regular user." msgstr "" "'Подтвержденный' подразумевает такой же ÑÑ‚Ð°Ñ‚ÑƒÑ ÐºÐ°Ðº обычный пользователь." -#: skins/default/templates/user_profile/user_moderate.html:83 +#: templates/user_profile/user_moderate.html:83 msgid "Suspended users can only edit or delete their own posts." msgstr "" "Замороженные пользователи могут только редактировать и удалÑÑ‚ÑŒ их " "ÑобÑтвенные ÑообщениÑ." -#: skins/default/templates/user_profile/user_moderate.html:86 +#: templates/user_profile/user_moderate.html:86 +#, fuzzy msgid "" -"Blocked users can only login and send feedback to the site administrators." +"Blocked users can only login and send feedback to the site administrators, " +"their url and profile will also be hidden." msgstr "" "Заблокированные пользователи могут только войти и пиÑать отзывы " "админиÑтратору Ñайта." -#: skins/default/templates/user_profile/user_network.html:5 -#: skins/default/templates/user_profile/user_tabs.html:18 +#: templates/user_profile/user_network.html:5 +#: templates/user_profile/user_tabs.html:18 msgid "network" msgstr "Ñеть" -#: skins/default/templates/user_profile/user_network.html:10 +#: templates/user_profile/user_network.html:10 #, python-format msgid "Followed by %(count)s person" msgid_plural "Followed by %(count)s people" @@ -6875,7 +7896,7 @@ msgstr[0] "ПодпиÑан %(count)s человек" msgstr[1] "ПодпиÑано %(count)s человек" msgstr[2] "ПодпиÑаны %(count)s человек" -#: skins/default/templates/user_profile/user_network.html:14 +#: templates/user_profile/user_network.html:21 #, python-format msgid "Following %(count)s person" msgid_plural "Following %(count)s people" @@ -6883,7 +7904,7 @@ msgstr[0] "ОтÑлеживаетÑÑ %(count)s пользователем" msgstr[1] "ОтÑлеживаетÑÑ %(count)s пользователÑми" msgstr[2] "ОтÑлеживаетÑÑ %(count)s пользователÑми" -#: skins/default/templates/user_profile/user_network.html:19 +#: templates/user_profile/user_network.html:33 msgid "" "Your network is empty. Would you like to follow someone? - Just visit their " "profiles and click \"follow\"" @@ -6891,462 +7912,843 @@ msgstr "" "Ваша Ñеть пуÑта. Хотите подпиÑатÑÑ Ð½Ð° какого-то пользователÑ? ПоÑетите его " "профиль и нажмите \"ПодпиÑатÑÑ\"" -#: skins/default/templates/user_profile/user_network.html:21 +#: templates/user_profile/user_network.html:35 #, python-format msgid "%(username)s's network is empty" -msgstr "" -" Окружение %(username)s пуÑто" +msgstr " Окружение %(username)s пуÑто" -#: skins/default/templates/user_profile/user_recent.html:4 -#: skins/default/templates/user_profile/user_tabs.html:27 -#: skins/default/templates/user_profile/user_tabs.html:29 -#: skins/default/templates/user_profile/user_tabs.html:31 +#: templates/user_profile/user_recent.html:5 +#: templates/user_profile/user_tabs.html:31 +#: templates/user_profile/user_tabs.html:33 msgid "activity" msgstr "активноÑÑ‚ÑŒ" -#: skins/default/templates/user_profile/user_recent.html:24 -#: skins/default/templates/user_profile/user_recent.html:28 +#: templates/user_profile/user_recent.html:25 +#: templates/user_profile/user_recent.html:29 msgid "source" msgstr "иÑточник" -#: skins/default/templates/user_profile/user_reputation.html:4 -#: skins/default/templates/users.html:15 -#: skins/default/templates/user_profile/user_info.html:25 -#: skins/default/templates/user_profile/user_tabs.html:23 -msgid "karma" -msgstr "" -"карма" - -#: skins/default/templates/user_profile/user_reputation.html:11 +#: templates/user_profile/user_reputation.html:12 msgid "Your karma change log." -msgstr "" -"ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ кармы." +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ кармы." -#: skins/default/templates/user_profile/user_reputation.html:13 +#: templates/user_profile/user_reputation.html:14 #, python-format msgid "%(user_name)s's karma change log" -msgstr "" -"ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user_name)s" +msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ð¸ Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ %(user_name)s" -#: skins/default/templates/user_profile/user_stats.html:5 -#: skins/default/templates/user_profile/user_tabs.html:6 -#: skins/default/templates/user_profile/user_tabs.html:7 +#: templates/user_profile/user_stats.html:6 +#: templates/user_profile/user_tabs.html:7 msgid "overview" msgstr "обзор" -#: skins/default/templates/user_profile/user_stats.html:65 -#: skins/default/templates/user_profile/user_stats.html:24 +#: templates/user_profile/user_stats.html:12 +#, python-format +msgid "<span class=\"count\">%(counter)s</span> Question" +msgid_plural "<span class=\"count\">%(counter)s</span> Questions" +msgstr[0] "<span class=\"count\">%(counter)s</span> ВопроÑ" +msgstr[1] "<span class=\"count\">%(counter)s</span> ВопроÑа" +msgstr[2] "<span class=\"count\">%(counter)s</span> ВопроÑов" + +#: templates/user_profile/user_stats.html:17 +msgid "Answer" +msgid_plural "Answers" +msgstr[0] "Ответ" +msgstr[1] "Ответа" +msgstr[2] "Ответов" + +#: templates/user_profile/user_stats.html:25 #, python-format msgid "the answer has been voted for %(answer_score)s times" msgstr "за ответ проголоÑовали %(answer_score)s раз" -#: skins/default/templates/user_profile/user_stats.html:65 -#: skins/common/templates/question/answer_vote_buttons.html:6 -#: skins/default/templates/user_profile/user_stats.html:24 -msgid "this answer has been selected as correct" -msgstr "" -"Ñтот ответ был выбран в качеÑтве правильного" - -#: skins/default/templates/user_profile/user_stats.html:76 -#: skins/default/templates/user_profile/user_stats.html:34 +#: templates/user_profile/user_stats.html:35 #, python-format msgid "(%(comment_count)s comment)" msgid_plural "the answer has been commented %(comment_count)s times" -msgstr[0] "" -"(%(comment_count)s комментарий)" -msgstr[1] "" -"Ñтот ответ комментировали %(comment_count)s раза" -msgstr[2] "" -"Ñтот ответ комментировали %(comment_count)s раз" +msgstr[0] "(%(comment_count)s комментарий)" +msgstr[1] "Ñтот ответ комментировали %(comment_count)s раза" +msgstr[2] "Ñтот ответ комментировали %(comment_count)s раз" + +#: templates/user_profile/user_stats.html:45 +#, python-format +msgid "<span class=\"count\">%(cnt)s</span> Vote" +msgid_plural "<span class=\"count\">%(cnt)s</span> Votes " +msgstr[0] "<span class=\"count\">%(cnt)s</span> ГолоÑ" +msgstr[1] "<span class=\"count\">%(cnt)s</span> ГолоÑа" +msgstr[2] "<span class=\"count\">%(cnt)s</span> ГолоÑов" -#: skins/default/templates/user_profile/user_stats.html:100 -#: skins/default/templates/user_profile/user_stats.html:50 +#: templates/user_profile/user_stats.html:51 msgid "thumb up" msgstr "Ñ \"за\"" -#: skins/default/templates/user_profile/user_stats.html:101 -#: skins/default/templates/user_profile/user_stats.html:51 +#: templates/user_profile/user_stats.html:52 msgid "user has voted up this many times" -msgstr "" -"голоÑов \"за\"" +msgstr "голоÑов \"за\"" -#: skins/default/templates/user_profile/user_stats.html:104 -#: skins/default/templates/user_profile/user_stats.html:54 +#: templates/user_profile/user_stats.html:55 msgid "thumb down" msgstr "Ñ \"против\"" -#: skins/default/templates/user_profile/user_stats.html:105 -#: skins/default/templates/user_profile/user_stats.html:55 +#: templates/user_profile/user_stats.html:56 msgid "user voted down this many times" -msgstr "" -"голоÑов \"против\"" +msgstr "голоÑов \"против\"" + +#: templates/user_profile/user_stats.html:64 +#, python-format +msgid "<span class=\"count\">%(counter)s</span> Tag" +msgid_plural "<span class=\"count\">%(counter)s</span> Tags" +msgstr[0] "<span class=\"count\">%(counter)s</span> ТÑг" +msgstr[1] "<span class=\"count\">%(counter)s</span> Тега" +msgstr[2] "<span class=\"count\">%(counter)s</span> ТÑгов" -#: skins/default/templates/user_profile/user_stats.html:185 -#: skins/default/templates/user_profile/user_stats.html:120 +#: templates/user_profile/user_stats.html:109 +#, python-format +msgid "<span class=\"count\">%(counter)s</span> Badge" +msgid_plural "<span class=\"count\">%(counter)s</span> Badges" +msgstr[0] "<span class=\"count\">%(counter)s</span> Ðаграда" +msgstr[1] "<span class=\"count\">%(counter)s</span> Ðаграды" +msgstr[2] "<span class=\"count\">%(counter)s</span> Ðаград" + +#: templates/user_profile/user_stats.html:132 msgid "Answer to:" -msgstr "" -"Ответ на:" +msgstr "Ответ на:" -#: skins/default/templates/user_profile/user_tabs.html:5 +#: templates/user_profile/user_tabs.html:5 msgid "User profile" msgstr "Профиль пользователÑ" -#: skins/default/templates/user_profile/user_tabs.html:9 views/users.py:842 -#: skins/default/templates/user_profile/user_tabs.html:10 views/users.py:638 +#: templates/user_profile/user_tabs.html:10 views/users.py:869 msgid "comments and answers to others questions" msgstr "комментарии и ответы на другие вопроÑÑ‹" -#: skins/default/templates/user_profile/user_tabs.html:16 +#: templates/user_profile/user_tabs.html:16 msgid "followers and followed users" msgstr "подпиÑчики и подпиÑанные пользователи" -#: skins/default/templates/user_profile/user_tabs.html:19 -msgid "graph of user reputation" -msgstr "график кармы" - -#: skins/default/templates/user_profile/user_tabs.html:20 -msgid "reputation history" -msgstr "" -"карма" +#: templates/user_profile/user_tabs.html:22 +msgid "Graph of user karma" +msgstr "График кармы пользователÑ" -#: skins/default/templates/user_profile/user_tabs.html:22 -#: skins/default/templates/user_profile/user_tabs.html:25 +#: templates/user_profile/user_tabs.html:27 msgid "questions that user is following" -msgstr "" -"вопроÑÑ‹ отÑлеживаемые пользователем" - -#: skins/default/templates/user_profile/user_tabs.html:26 -msgid "recent activity" -msgstr "поÑледнÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ" +msgstr "вопроÑÑ‹ отÑлеживаемые пользователем" -#: skins/default/templates/user_profile/user_tabs.html:30 views/users.py:917 -#: skins/default/templates/user_profile/user_tabs.html:34 views/users.py:679 +#: templates/user_profile/user_tabs.html:36 views/users.py:911 msgid "user vote record" msgstr "Ð³Ð¾Ð»Ð¾Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: skins/default/templates/user_profile/user_tabs.html:31 -msgid "casted votes" +#: templates/user_profile/user_tabs.html:38 +#: templates/user_profile/user_votes.html:5 +msgid "votes" msgstr "голоÑа" -#: skins/default/templates/user_profile/user_tabs.html:35 views/users.py:1030 -#: skins/default/templates/user_profile/user_tabs.html:40 views/users.py:769 +#: templates/user_profile/user_tabs.html:42 views/users.py:1023 msgid "email subscription settings" -msgstr "" -"наÑтройки подпиÑки по email" +msgstr "наÑтройки подпиÑки по email" -#: skins/default/templates/user_profile/user_tabs.html:40 views/users.py:294 -#: skins/default/templates/user_profile/user_tabs.html:46 views/users.py:205 +#: templates/user_profile/user_tabs.html:48 views/users.py:286 msgid "moderate this user" msgstr "Модерировать Ñтого пользователÑ" -#: skins/default/templates/user_profile/user_tabs.html:45 -msgid "banner for this user" -msgstr "баннер Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пользователÑ" +#: templates/widgets/answer_edit_tips.html:3 +#: templates/widgets/question_edit_tips.html:3 +msgid "Tips" +msgstr "" -#: skins/default/templates/user_profile/user_votes.html:4 -#: skins/default/templates/user_profile/user_tabs.html:36 -msgid "votes" +#: templates/widgets/answer_edit_tips.html:6 +msgid "give an answer interesting to this community" +msgstr "давайте ответы интереÑные Ð´Ð»Ñ Ñтого ÑобщеÑтва" + +#: templates/widgets/answer_edit_tips.html:9 +msgid "try to give an answer, rather than engage into a discussion" +msgstr "поÑтарайтеÑÑŒ ответить, а не заниматьÑÑ Ð¾Ð±Ñуждением" + +#: templates/widgets/ask_button.html:9 +msgid "Ask the Group" msgstr "" -"голоÑа" -#: templatetags/extra_filters.py:145 templatetags/extra_filters_jinja.py:240 -msgid "no items in counter" +#: templates/widgets/ask_form.html:40 +#, fuzzy +msgid "Select language" +msgstr "Выберите тему пользовательÑкого интерфейÑа" + +#: templates/widgets/contributors.html:3 +msgid "Contributors" +msgstr "Ðвторы" + +#: templates/widgets/edit_post.html:42 +msgid ", one of these is required" +msgstr "одно из Ñтого обÑзательно" + +#: templates/widgets/edit_post.html:51 templates/widgets/edit_post.html:56 +msgid "tags:" +msgstr "Ñ‚Ñги:" + +#: templates/widgets/edit_post.html:52 +msgid "(required)" +msgstr "(обÑзательно)" + +#: templates/widgets/edit_post.html:81 +msgid "Toggle the real time Markdown editor preview" +msgstr "Включить/выключить предварительный проÑмотр текÑта" + +#: templates/widgets/edit_post.html:96 +msgid "" +"To post on behalf of someone else, enter user name <strong>and</strong> " +"email below." +msgstr "" + +#: templates/widgets/footer.html:33 +#, python-format +msgid "Content on this site is licensed under a %(license)s" +msgstr "Содержимое Ñтого Ñайта раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ лицензией %(license)s" + +#: templates/widgets/footer.html:38 +msgid "about" +msgstr "О наÑ" + +#: templates/widgets/footer.html:40 templates/widgets/user_navigation.html:26 +msgid "help" +msgstr "помощь" + +#: templates/widgets/footer.html:42 +msgid "privacy policy" +msgstr "политика конфиденциальноÑти" + +#: templates/widgets/footer.html:51 +msgid "give feedback" +msgstr "оÑтавить отзыв" + +#: templates/widgets/group_info.html:3 +msgid "Group info" +msgstr "" + +#: templates/widgets/group_info.html:26 +#, fuzzy +msgid "edit description" +msgstr "%(description)s" + +#: templates/widgets/group_info.html:30 +#, fuzzy +msgid "change logo" +msgstr "заменить/" + +#: templates/widgets/group_info.html:32 +#, fuzzy +msgid "delete logo" +msgstr "добавить комментарий" + +#: templates/widgets/group_info.html:36 +msgid "add logo" +msgstr "" + +#: templates/widgets/group_info.html:46 +#, fuzzy +msgid "moderate emailed questions" +msgstr "Похожие вопроÑÑ‹:" + +#: templates/widgets/group_info.html:58 +#, fuzzy +msgid "show only selected answers to enquirers" +msgstr "включить только выбранные Ñ‚Ñги" + +#: templates/widgets/group_info.html:63 +msgid "How users join this group?" +msgstr "" + +#: templates/widgets/group_info.html:87 +msgid "Make group VIP" +msgstr "" + +#: templates/widgets/group_info.html:93 +msgid "list of email addresses of pre-approved users" +msgstr "" + +#: templates/widgets/group_info.html:98 +#, fuzzy +msgid "List of preapproved email addresses" +msgstr "ваш email" + +#: templates/widgets/group_info.html:99 +msgid "" +"Users with these email adderesses will be added to the group automatically." +msgstr "" + +#: templates/widgets/group_info.html:100 +#, fuzzy +msgid "edit preapproved emails" +msgstr "отредактировано по email" + +#: templates/widgets/group_info.html:104 +msgid "list of preapproved email address domain names" +msgstr "" + +#: templates/widgets/group_info.html:109 +msgid "List of preapproved email domain names" +msgstr "" + +#: templates/widgets/group_info.html:110 +msgid "" +"Users whose email adderesses belong to these domains will be added to the " +"group automatically." +msgstr "" + +#: templates/widgets/group_info.html:111 +msgid "edit preapproved email domains" +msgstr "" + +#: templates/widgets/logo.html:3 +msgid "back to home page" +msgstr "вернутьÑÑ Ð½Ð° главную" + +#: templates/widgets/logo.html:4 +#, python-format +msgid "%(site)s logo" +msgstr "%(site)s логотип" + +#: templates/widgets/markdown_help.html:2 +msgid "Markdown basics" +msgstr "ОÑновы Markdown" + +#: templates/widgets/markdown_help.html:6 +msgid "*italic*" +msgstr "*курÑив*" + +#: templates/widgets/markdown_help.html:9 +msgid "**bold**" +msgstr "**жирный шрифт**" + +#: templates/widgets/markdown_help.html:13 +msgid "*italic* or _italic_" +msgstr "*курÑив* или _курÑив_" + +#: templates/widgets/markdown_help.html:16 +msgid "**bold** or __bold__" +msgstr "**жирный шрифт** или __жирный шрифт__" + +#: templates/widgets/markdown_help.html:20 +#: templates/widgets/markdown_help.html:24 +msgid "text" +msgstr "текÑÑ‚" + +#: templates/widgets/markdown_help.html:24 +msgid "image" +msgstr "изображение" + +#: templates/widgets/markdown_help.html:28 +msgid "numbered list:" +msgstr "пронумерованный ÑпиÑок:" + +#: templates/widgets/markdown_help.html:33 +msgid "basic HTML tags are also supported" +msgstr "оÑновные теги HTML также поддерживаютÑÑ" + +#: templates/widgets/markdown_help.html:38 +msgid "learn more about Markdown" +msgstr "Узнать больше о Markdown" + +#: templates/widgets/meta_nav.html:12 +msgid "people & groups" +msgstr "" + +#: templates/widgets/meta_nav.html:20 +msgid "users" +msgstr "пользователи" + +#: templates/widgets/meta_nav.html:27 +msgid "badges" +msgstr "награды" + +#: templates/widgets/question_edit_tips.html:5 +msgid "ask a question interesting to this community" +msgstr "задавайте интереÑные вопроÑÑ‹ Ð´Ð»Ñ Ñтого ÑобщеÑтва" + +#: templates/widgets/question_summary.html:12 +msgid "view" +msgid_plural "views" +msgstr[0] "проÑм." +msgstr[1] "проÑм." +msgstr[2] "проÑм." + +#: templates/widgets/question_summary.html:30 +msgid "answer" +msgid_plural "answers" +msgstr[0] "ответ" +msgstr[1] "ответа" +msgstr[2] "ответов" + +#: templates/widgets/question_summary.html:41 +msgid "vote" +msgid_plural "votes" +msgstr[0] "голоÑ" +msgstr[1] "голоÑа" +msgstr[2] "голоÑов" + +#: templates/widgets/scope_nav.html:17 +msgid "ALL" +msgstr "ВСЕ" + +#: templates/widgets/scope_nav.html:22 +msgid "see unanswered questions" +msgstr "Ñмотреть неотвеченные вопроÑÑ‹" + +#: templates/widgets/scope_nav.html:22 +msgid "UNANSWERED" +msgstr "ÐЕОТВЕЧЕÐÐЫЕ" + +#: templates/widgets/scope_nav.html:27 +msgid "see your followed questions" +msgstr "поÑмотреть Ñообщений на которые Ð’Ñ‹ подпиÑалиÑÑŒ" + +#: templates/widgets/scope_nav.html:27 +msgid "FOLLOWED" +msgstr "ИЗБРÐÐÐЫЕ" + +#: templates/widgets/scope_nav.html:30 +msgid "Please ask your question here" +msgstr "Задавайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð·Ð´ÐµÑÑŒ" + +#: templates/widgets/tag_selector.html:4 +msgid "Interesting tags" +msgstr "Избранные теги" + +#: templates/widgets/tag_selector.html:22 +msgid "Ignored tags" +msgstr "Игнорируемые теги" + +#: templates/widgets/tag_selector.html:40 +#, fuzzy +msgid "Subscribed tags" +msgstr "ПодпиÑатьÑÑ Ð½Ð° теги" + +#: templates/widgets/tag_selector.html:59 +msgid "Show only questions from" +msgstr "Фильтр по тегам" + +#: templates/widgets/tag_selector.html:70 +#, fuzzy +msgid "Send me email alerts for" +msgstr "РаÑÑылать Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email" + +#: templates/widgets/tag_selector.html:86 +#, fuzzy +msgid "Change frequency of emails" +msgstr "Изменить Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" + +#: templates/widgets/three_column_category_selector.html:4 +msgid "" +"Categorize your question using this tag selector or entering text in tag box." +msgstr "" + +#: templates/widgets/three_column_category_selector.html:7 +#: templates/widgets/three_column_category_selector.html:10 +#, fuzzy +msgid "(done editing)" +msgstr "одна верÑиÑ" + +#: templates/widgets/three_column_category_selector.html:8 +#: templates/widgets/three_column_category_selector.html:9 +#: templates/widgets/three_column_category_selector.html:11 +msgid "(edit categories)" +msgstr "" + +#: templates/widgets/user_long_score_and_badge_summary.html:5 +msgid "karma:" +msgstr "карма:" + +#: templates/widgets/user_long_score_and_badge_summary.html:10 +msgid "badges:" +msgstr "награды:" + +#: templates/widgets/user_navigation.html:17 +msgid "sign out" +msgstr "выход" + +#: templates/widgets/user_navigation.html:20 +#, fuzzy +msgid "Hi there! Please sign in" +msgstr "ПожалуйÑта, войдите здеÑÑŒ." + +#: templates/widgets/user_navigation.html:23 +msgid "settings" +msgstr "наÑтройки" + +#: templates/widgets/user_navigation.html:24 +#, fuzzy +msgid "widgets" +msgstr "widgets/" + +#: templatetags/extra_filters_jinja.py:303 +msgid "no" msgstr "нет" -#: utils/decorators.py:90 views/commands.py:112 views/commands.py:132 -#: views/commands.py:73 views/commands.py:93 +#: utils/decorators.py:103 views/commands.py:146 msgid "Oops, apologies - there was some error" msgstr "Извините, произошла ошибка!" -#: utils/decorators.py:109 +#: utils/decorators.py:122 msgid "Please login to post" -msgstr "" -"ПожалуйÑта, войдите чтобы оÑтавить Ñообщение" +msgstr "ПожалуйÑта, войдите чтобы оÑтавить Ñообщение" -#: utils/decorators.py:205 +#: utils/decorators.py:218 msgid "Spam was detected on your post, sorry for if this is a mistake" msgstr "Ð’ вашем Ñообщении обнаружен Ñпам, проÑтите, еÑли произошла ошибка." -#: utils/forms.py:32 utils/forms.py:33 +#: utils/decorators.py:242 +msgid "This function is limited to moderators and administrators" +msgstr "" + +#: utils/forms.py:66 msgid "this field is required" msgstr "Ñто поле обÑзательное" -#: utils/forms.py:46 -msgid "choose a username" +#: utils/forms.py:93 +msgid "Choose a screen name" msgstr "выбрать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: utils/forms.py:52 utils/forms.py:69 +#: utils/forms.py:103 msgid "user name is required" msgstr "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¾Ð±Ñзательно" -#: utils/forms.py:53 utils/forms.py:70 +#: utils/forms.py:104 msgid "sorry, this name is taken, please choose another" msgstr "к Ñожалению, Ñто Ð¸Ð¼Ñ Ð¸ÑпользуетÑÑ, выберите другое" -#: utils/forms.py:54 utils/forms.py:71 +#: utils/forms.py:105 msgid "sorry, this name is not allowed, please choose another" msgstr "к Ñожалению, Ñто Ð¸Ð¼Ñ Ð½Ðµ разрешено, выберите другое" -#: utils/forms.py:55 utils/forms.py:72 +#: utils/forms.py:106 msgid "sorry, there is no user with this name" msgstr "к Ñожалению, Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем не ÑущеÑтвует" -#: utils/forms.py:56 utils/forms.py:73 +#: utils/forms.py:107 msgid "sorry, we have a serious error - user name is taken by several users" msgstr "" "к Ñожалению, у Ð½Ð°Ñ ÐµÑÑ‚ÑŒ ÑÐµÑ€ÑŒÐµÐ·Ð½Ð°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ° - Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ÑпользуетÑÑ " "неÑколькими пользователÑми" -#: utils/forms.py:57 utils/forms.py:74 +#: utils/forms.py:108 msgid "user name can only consist of letters, empty space and underscore" msgstr "" "Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ‚ ÑоÑтоÑÑ‚ÑŒ только из букв, пробелов и подчеркиваний" -#: utils/forms.py:118 -msgid "your email address" -msgstr "ваш email" +#: utils/forms.py:109 +msgid "please use at least some alphabetic characters in the user name" +msgstr "пожалуйÑта иÑпользуйте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ некоторые Ñимволы алфавита в имени" + +#: utils/forms.py:110 +msgid "symbol \"@\" is not allowed" +msgstr "" -#: utils/forms.py:119 utils/forms.py:139 +#: utils/forms.py:222 +msgid "Your email <i>(never shared)</i>" +msgstr "" + +#: utils/forms.py:224 msgid "email address is required" msgstr "email обÑзательное" -#: utils/forms.py:120 utils/forms.py:140 +#: utils/forms.py:225 msgid "please enter a valid email address" msgstr "пожалуйÑта, введите правильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" -#: utils/forms.py:121 utils/forms.py:141 +#: utils/forms.py:226 msgid "this email is already used by someone else, please choose another" msgstr "Ñтот email уже иÑпользуетÑÑ ÐºÐµÐ¼-то еще, пожалуйÑта, выберите другой" -#: utils/forms.py:149 -msgid "choose password" -msgstr "выбрать пароль" +#: utils/forms.py:227 +#, fuzzy +msgid "this email address is not authorized" +msgstr "email обÑзательное" -#: utils/forms.py:150 utils/forms.py:170 +#: utils/forms.py:267 msgid "password is required" msgstr "пароль обÑзателен" -#: utils/forms.py:153 -msgid "retype password" -msgstr "введите пароль еще раз" +#: utils/forms.py:270 +msgid "Password <i>(please retype)</i>" +msgstr "" -#: utils/forms.py:154 utils/forms.py:174 +#: utils/forms.py:271 msgid "please, retype your password" msgstr "пожалуйÑта, повторите Ñвой пароль" -#: utils/forms.py:155 utils/forms.py:175 +#: utils/forms.py:272 msgid "sorry, entered passwords did not match, please try again" msgstr "к Ñожалению, пароли не Ñовпадают, попробуйте еще раз" -#: utils/functions.py:74 utils/functions.py:82 +#: utils/functions.py:101 msgid "2 days ago" msgstr "2 Ð´Ð½Ñ Ð½Ð°Ð·Ð°Ð´" -#: utils/functions.py:76 utils/functions.py:84 +#: utils/functions.py:103 msgid "yesterday" msgstr "вчера" -#: utils/functions.py:79 utils/functions.py:87 +#: utils/functions.py:106 #, python-format msgid "%(hr)d hour ago" msgid_plural "%(hr)d hours ago" -msgstr[0] "" -"%(hr)d Ñ‡Ð°Ñ Ð½Ð°Ð·Ð°Ð´" -msgstr[1] "" -"%(hr)d чаÑа назад" -msgstr[2] "" -"%(hr)d чаÑов назад" +msgstr[0] "%(hr)d Ñ‡Ð°Ñ Ð½Ð°Ð·Ð°Ð´" +msgstr[1] "%(hr)d чаÑа назад" +msgstr[2] "%(hr)d чаÑов назад" -#: utils/functions.py:85 utils/functions.py:93 +#: utils/functions.py:112 #, python-format msgid "%(min)d min ago" msgid_plural "%(min)d mins ago" -msgstr[0] "" -"%(min)d минуту назад" -msgstr[1] "" -"%(min)d минуты назад" -msgstr[2] "" -"%(min)d минут назад" +msgstr[0] "%(min)d минуту назад" +msgstr[1] "%(min)d минуты назад" +msgstr[2] "%(min)d минут назад" -#: views/avatar_views.py:99 +#: views/avatar_views.py:103 msgid "Successfully uploaded a new avatar." msgstr "Ðовый аватар уÑпешно загружен." -#: views/avatar_views.py:140 +#: views/avatar_views.py:144 msgid "Successfully updated your avatar." msgstr "Ваш аватар уÑпешно загружен." -#: views/avatar_views.py:180 +#: views/avatar_views.py:184 msgid "Successfully deleted the requested avatars." msgstr "Требуемые аватары уÑпешно удалены." -#: views/commands.py:39 -msgid "anonymous users cannot vote" -msgstr "неавторизированные пользователи не могут голоÑовать " +#: views/commands.py:123 +#, fuzzy +msgid "your post was not accepted" +msgstr "Ð°Ð´Ñ€ÐµÑ Ð’Ð°ÑˆÐµÐ¹ Ñлектронной почты не изменён" -#: views/commands.py:59 views/commands.py:129 +#: views/commands.py:136 +msgid "Sorry, but anonymous users cannot access the inbox" +msgstr "Ðеавторизованные пользователи не имеют доÑтупа к папке \"ÑообщениÑ\"" + +#: views/commands.py:165 +msgid "Sorry, anonymous users cannot vote" +msgstr "Ðеавторизованные пользователи не могут голоÑовать" + +#: views/commands.py:182 msgid "Sorry you ran out of votes for today" msgstr "Извините, вы иÑчерпали лимит голоÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð·Ð° ÑегоднÑ" -#: views/commands.py:65 views/commands.py:135 +#: views/commands.py:188 #, python-format msgid "You have %(votes_left)s votes left for today" msgstr "Ð’Ñ‹ можете голоÑовать ÑÐµÐ³Ð¾Ð´Ð½Ñ ÐµÑ‰Ñ‘ %(votes_left)s раз" -#: views/commands.py:122 views/commands.py:83 -msgid "Sorry, but anonymous users cannot access the inbox" -msgstr "" -"Ðеавторизованные пользователи не имеют доÑтупа к папке \"ÑообщениÑ\"" - -#: views/commands.py:192 views/commands.py:210 +#: views/commands.py:263 msgid "Sorry, something is not right here..." msgstr "Извините, что-то не здеÑÑŒ..." -#: views/commands.py:207 views/commands.py:229 +#: views/commands.py:282 msgid "Sorry, but anonymous users cannot accept answers" -msgstr "" -"Ðеавторизованные пользователи не могут отмечать ответы как правильные" +msgstr "Ðеавторизованные пользователи не могут отмечать ответы как правильные" -#: views/commands.py:288 +#: views/commands.py:392 #, python-format -msgid "subscription saved, %(email)s needs validation, see %(details_url)s" -msgstr "подпиÑка Ñохранена, %(email)s требует проверки, Ñм. %(details_url)s" +msgid "" +"Your subscription is saved, but email address %(email)s needs to be " +"validated, please see <a href=\"%(details_url)s\">more details here</a>" +msgstr "" +"Ваша подпиÑка Ñохранена, но email-Ð°Ð´Ñ€ÐµÑ %(email)s требует проверки, <a " +"href='%(details_url)s'>подробнее читайте здеÑÑŒ</a>" -#: views/commands.py:295 views/commands.py:348 +#: views/commands.py:401 msgid "email update frequency has been set to daily" msgstr "чаÑтота обновлений по email была уÑтановлена в ежедневную" -#: views/commands.py:464 +#: views/commands.py:689 #, python-format msgid "Tag subscription was canceled (<a href=\"%(url)s\">undo</a>)." msgstr "ПодпиÑка на Ñ‚Ñги была отменена (<a href=\"%(url)s\">вернуть</a>)." -#: views/commands.py:408 views/commands.py:473 +#: views/commands.py:698 #, python-format msgid "Please sign in to subscribe for: %(tags)s" -msgstr "" -"ПожалуйÑта, войдите чтобы подпиÑатьÑÑ Ð½Ð°: %(tags)s" +msgstr "ПожалуйÑта, войдите чтобы подпиÑатьÑÑ Ð½Ð°: %(tags)s" + +#: views/commands.py:717 +#, fuzzy +msgid "Create" +msgstr "Создать баннер" -#: views/commands.py:540 views/commands.py:600 +#: views/commands.py:946 msgid "Please sign in to vote" +msgstr "ПожалуйÑта, войдите чтобы проголоÑовать" + +#: views/commands.py:967 +msgid "Please sign in to delete/restore posts" +msgstr "ПожалуйÑта, войдите чтобы удалÑÑ‚ÑŒ/воÑÑтанавливать ÑообщениÑ" + +#: views/commands.py:1389 views/commands.py:1422 +msgid "Sorry, looks like sharing request was invalid" +msgstr "" + +#: views/commands.py:1445 +#, python-format +msgid "%(user)s, welcome to group %(group)s!" msgstr "" -"ПожалуйÑта, войдите чтобы проголоÑовать" -#: views/meta.py:106 views/meta.py:92 +#: views/commands.py:1497 +#, fuzzy +msgid "Sorry, only thread moderators can use this function" +msgstr "К Ñожалению, Ñта Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½ÐµÐ´Ð¾Ñтупна Ð´Ð»Ñ Ð½ÐµÐ°Ð²Ñ‚Ð¾Ñ€Ð¸Ð·Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… пользователей" + +#: views/commands.py:1512 +msgid "The answer is now unpublished" +msgstr "" + +#: views/commands.py:1516 +msgid "The answer is now published" +msgstr "" + +#: views/meta.py:47 +#, python-format +msgid "About %(site)s" +msgstr "О %(site)s" + +#: views/meta.py:91 +#, fuzzy +msgid "Please sign in or register to send your feedback" +msgstr "ПожалуйÑта, войдите чтобы удалÑÑ‚ÑŒ/воÑÑтанавливать ÑообщениÑ" + +#: views/meta.py:118 msgid "Q&A forum feedback" msgstr "ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь" -#: views/meta.py:107 views/meta.py:93 +#: views/meta.py:122 msgid "Thanks for the feedback!" msgstr "СпаÑибо за отзыв!" -#: views/meta.py:115 views/meta.py:102 +#: views/meta.py:131 msgid "We look forward to hearing your feedback! Please, give it next time :)" msgstr "Мы Ñ Ð½ÐµÑ‚ÐµÑ€Ð¿ÐµÐ½Ð¸ÐµÐ¼ ждем ваших отзывов!" -#: views/readers.py:177 -#, python-format -msgid "%(badge_count)d %(badge_level)s badge" -msgid_plural "%(badge_count)d %(badge_level)s badges" -msgstr[0] "%(badge_count)d %(badge_level)s медаль" -msgstr[1] "%(badge_count)d %(badge_level)s медали" -msgstr[2] "%(badge_count)d %(badge_level)s медалей" +#: views/meta.py:135 +msgid "Privacy policy" +msgstr "Политика конфиденциальноÑти" -#: views/readers.py:440 views/readers.py:388 +#: views/meta.py:219 +#, fuzzy +msgid "Suggested tags" +msgstr "иÑпользовать теги" + +#: views/readers.py:417 msgid "" "Sorry, the comment you are looking for has been deleted and is no longer " "accessible" msgstr "Извините, но запрашиваемый комментарий был удалён" -#: views/users.py:295 views/users.py:206 +#: views/users.py:287 msgid "moderate user" msgstr "модерировать пользователÑ" -#: views/users.py:450 views/users.py:381 +#: views/users.py:505 msgid "user profile" msgstr "профиль пользователÑ" -#: views/users.py:451 views/users.py:382 +#: views/users.py:506 msgid "user profile overview" msgstr "обзор Ð¿Ñ€Ð¾Ñ„Ð¸Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: views/users.py:755 views/users.py:551 +#: views/users.py:700 msgid "recent user activity" msgstr "поÑледние данные по активноÑти пользователÑ" -#: views/users.py:756 views/users.py:552 +#: views/users.py:701 msgid "profile - recent activity" msgstr "профиль - поÑледние данные по активноÑти" -#: views/users.py:843 views/users.py:639 +#: views/users.py:732 +msgid "group joining requests" +msgstr "" + +#: views/users.py:733 +#, fuzzy +msgid "profile - moderation" +msgstr "профиль - карма пользователÑ" + +#: views/users.py:789 +#, fuzzy +msgid "private messages" +msgstr "Отправить Ñообщение" + +#: views/users.py:790 +#, fuzzy +msgid "profile - messages" +msgstr "профиль - ответы" + +#: views/users.py:870 msgid "profile - responses" msgstr "профиль - ответы" -#: views/users.py:918 views/users.py:680 +#: views/users.py:912 msgid "profile - votes" msgstr "профиль - голоÑа" -#: views/users.py:953 -msgid "user reputation in the community" -msgstr "" -"карма пользователÑ" +#: views/users.py:933 +msgid "user karma" +msgstr "карма" -#: views/users.py:954 -msgid "profile - user reputation" -msgstr "профиль - карма пользователÑ" +#: views/users.py:934 +msgid "Profile - User's Karma" +msgstr "Профиль - Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: views/users.py:981 views/users.py:720 +#: views/users.py:952 msgid "users favorite questions" msgstr "избранные вопроÑÑ‹ пользователей" -#: views/users.py:982 views/users.py:721 +#: views/users.py:953 msgid "profile - favorite questions" msgstr "профиль - избранные вопроÑÑ‹" -#: views/users.py:1002 views/users.py:1006 views/users.py:741 -#: views/users.py:745 +#: views/users.py:994 views/users.py:998 msgid "changes saved" msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñохранены" -#: views/users.py:1012 views/users.py:751 +#: views/users.py:1004 msgid "email updates canceled" msgstr "Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ email отменены" -#: views/users.py:1031 views/users.py:770 +#: views/users.py:1024 msgid "profile - email subscriptions" msgstr "профиль - подпиÑки" -#: views/writers.py:58 views/writers.py:60 +#: views/users.py:1045 +#, fuzzy, python-format +msgid "profile - %(section)s" +msgstr "профиль - ответы" + +#: views/writers.py:73 msgid "Sorry, anonymous users cannot upload files" -msgstr "" -"Ðеавторизованные пользователи не могут загружать файлы" +msgstr "Ðеавторизованные пользователи не могут загружать файлы" -#: views/writers.py:68 views/writers.py:73 +#: views/writers.py:90 #, python-format msgid "allowed file types are '%(file_types)s'" msgstr "допуÑтимые типы файлов: '%(file_types)s'" -#: views/writers.py:91 views/writers.py:84 +#: views/writers.py:103 #, python-format msgid "maximum upload file size is %(file_size)sK" msgstr "макÑимальный размер загружаемого файла - %(file_size)s K" -#: views/writers.py:99 views/writers.py:92 +#: views/writers.py:111 msgid "Error uploading file. Please contact the site administrator. Thank you." msgstr "" "Ошибка при загрузке файла. ПожалуйÑта, ÑвÑжитеÑÑŒ Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸Ñтрацией Ñайта." -#: views/writers.py:191 -msgid "Please log in to ask questions" +#: views/writers.py:208 +msgid "" +"<span class=\"strong big\">You are welcome to start submitting your question " +"anonymously</span>. When you submit the post, you will be redirected to the " +"login/signup page. Your question will be saved in the current session and " +"will be published after you log in. Login/signup process is very simple. " +"Login takes about 30 seconds, initial signup takes a minute or less." msgstr "" -"<span class=\"strong big\">Ð’Ñ‹ можете добавлÑÑ‚ÑŒ Ñвои вопроÑÑ‹ анонимно</span>. " -"При добавлении ÑообщениÑ, Ð²Ð°Ñ Ð¿ÐµÑ€ÐµÐ½Ð°Ð¿Ñ€Ð°Ð²Ð¸Ñ‚ на Ñтраницу региÑтрации/входа на " -"Ñайт. Ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранен в текущей ÑеÑÑии и будет опубликован поÑле " -"того как вы войдете на Ñайт. ПроцеÑÑ Ñ€ÐµÐ³Ð¸Ñтрации/входа на Ñайт очень проÑÑ‚: " -"вход на Ñайт займет у Ð²Ð°Ñ Ð¾ÐºÐ¾Ð»Ð¾ 30 Ñекунд, Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ Ñ€ÐµÐ³Ð¸ÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ñ‚Ñ€ÐµÐ±ÑƒÐµÑ‚ 1 " -"минуты или менее." -#: views/writers.py:492 views/writers.py:466 +#: views/writers.py:570 msgid "Please log in to answer questions" msgstr "" "<span class='big strong'>ПожалуйÑта, ÑтарайтеÑÑŒ давать ответы по-ÑущеÑтву</" @@ -7356,7 +8758,7 @@ msgstr "" "Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹. Кроме того, пожалуйÑта, <strong>не забывайте голоÑовать</" "strong> - Ñто дейÑтвительно помогает выбрать лучшие вопроÑÑ‹ и ответы!" -#: views/writers.py:598 views/writers.py:572 +#: views/writers.py:706 #, python-format msgid "" "Sorry, you appear to be logged out and cannot post comments. Please <a href=" @@ -7365,12 +8767,11 @@ msgstr "" "Извините, вы не вошли, поÑтому не можете оÑтавлÑÑ‚ÑŒ комментарии. <a href=" "\"%(sign_in_url)s\">Войдите</a>." -#: views/writers.py:646 views/writers.py:589 +#: views/writers.py:723 msgid "Sorry, anonymous users cannot edit comments" -msgstr "" -"Ðеавторизованные пользователи не могут иÑправлÑÑ‚ÑŒ комментарии" +msgstr "Ðеавторизованные пользователи не могут иÑправлÑÑ‚ÑŒ комментарии" -#: views/writers.py:654 views/writers.py:619 +#: views/writers.py:767 #, python-format msgid "" "Sorry, you appear to be logged out and cannot delete comments. Please <a " @@ -7379,1304 +8780,892 @@ msgstr "" "Извините, вы не вошли, поÑтому не можете удалÑÑ‚ÑŒ комментарии. <a href=" "\"%(sign_in_url)s\">Войдите</a>." -#: views/writers.py:675 views/writers.py:640 +#: views/writers.py:793 msgid "sorry, we seem to have some technical difficulties" msgstr "Извините, у Ð½Ð°Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»Ñ‘Ð½Ð½Ñ‹Ðµ техничеÑкие проблемы." -#: skins/default/templates/feedback_email.txt:2 -#, python-format -msgid "" -"\n" -"Hello, this is a %(site_title)s forum feedback message.\n" -msgstr "" -"\n" -"ЗдравÑтвуйте, Ñто Ñообщение, поÑланное через обратную ÑвÑзь форума " -"%(site_title)s\n" - -#: skins/common/templates/authopenid/confirm_email.txt:1 -msgid "Thank you for registering at our Q&A forum!" -msgstr "Благодарим Ð²Ð°Ñ Ð·Ð° региÑтрацию на нашем Q/A форуме!" - -#: skins/common/templates/authopenid/confirm_email.txt:3 -msgid "Your account details are:" -msgstr "ПодробноÑти вашей учетной запиÑи:" - -#: skins/common/templates/authopenid/confirm_email.txt:5 -msgid "Username:" -msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ:" - -#: skins/common/templates/authopenid/confirm_email.txt:6 -msgid "Password:" -msgstr "Пароль:" - -#: skins/common/templates/authopenid/confirm_email.txt:8 -msgid "Please sign in here:" -msgstr "ПожалуйÑта, войдите здеÑÑŒ:" - -#: skins/common/templates/authopenid/email_validation.txt:1 -msgid "Greetings from the Q&A forum" -msgstr "Ð’Ð°Ñ Ð¿Ñ€Ð¸Ð²ÐµÑ‚Ñтвует Q/A форум" - -#: skins/common/templates/authopenid/email_validation.txt:3 -msgid "To make use of the Forum, please follow the link below:" -msgstr "" -"Ð”Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы воÑпользоватьÑÑ Ñ„Ð¾Ñ€ÑƒÐ¼Ð¾Ð¼, пожалуйÑта, перейдите по ÑÑылке ниже:" - -#: skins/common/templates/authopenid/email_validation.txt:7 -msgid "Following the link above will help us verify your email address." -msgstr "ÐŸÐµÑ€ÐµÐ¹Ð´Ñ Ð¿Ð¾ ÑÑылке выше, вы поможете нам проверить ваш email." - -#: skins/default/templates/badges.html:3 skins/default/templates/badges.html:5 -msgid "Badges" -msgstr "Ðаграды" - -#: skins/common/templates/authopenid/signin.html:37 -msgid "" -"Click on one of the icons below to add a new login method or re-validate an " -"existing one." -msgstr "" -"Ðажмите на одной из иконок ниже чтобы добавить метод входа или проверить уже " -"ÑущеÑтвующий." - -#: skins/default/templates/badges.html:7 -msgid "Community gives you awards for your questions, answers and votes." -msgstr "" -"СообщеÑтво даёт вам награды за ваши вопроÑÑ‹, ответы и голоÑа." - -#: skins/common/templates/authopenid/signin.html:124 -msgid "New password" -msgstr "" -"Ðовый пароль " - -#: skins/common/templates/authopenid/signup_with_password.html:56 -msgid "return to OpenID login" -msgstr "вернутьÑÑ Ðº Ñтарнице OpenID входа" - -#: skins/default/templates/user_profile/user_stats.html:11 -#, python-format -msgid "<span class=\"count\">%(counter)s</span> Question" -msgid_plural "<span class=\"count\">%(counter)s</span> Questions" -msgstr[0] "" -"<span class=\"count\">%(counter)s</span> ВопроÑ" -msgstr[1] "" -"<span class=\"count\">%(counter)s</span> ВопроÑа" -msgstr[2] "" -"<span class=\"count\">%(counter)s</span> ВопроÑов" - -#: skins/default/templates/user_profile/user_stats.html:44 -#, python-format -msgid "<span class=\"count\">%(cnt)s</span> Vote" -msgid_plural "<span class=\"count\">%(cnt)s</span> Votes " -msgstr[0] "" -"<span class=\"count\">%(cnt)s</span> ГолоÑ" -msgstr[1] "" -"<span class=\"count\">%(cnt)s</span> ГолоÑа" -msgstr[2] "" -"<span class=\"count\">%(cnt)s</span> ГолоÑов" - -#: skins/default/templates/user_profile/user_stats.html:63 -#, python-format -msgid "<span class=\"count\">%(counter)s</span> Tag" -msgid_plural "<span class=\"count\">%(counter)s</span> Tags" -msgstr[0] "" -"<span class=\"count\">%(counter)s</span> ТÑг" -msgstr[1] "" -"<span class=\"count\">%(counter)s</span> Тега" -msgstr[2] "" -"<span class=\"count\">%(counter)s</span> ТÑгов" - -#: skins/default/templates/user_profile/user_stats.html:97 -#, python-format -msgid "<span class=\"count\">%(counter)s</span> Badge" -msgid_plural "<span class=\"count\">%(counter)s</span> Badges" -msgstr[0] "" -"<span class=\"count\">%(counter)s</span> Ðаграда" -msgstr[1] "" -"<span class=\"count\">%(counter)s</span> Ðаграды" -msgstr[2] "" -"<span class=\"count\">%(counter)s</span> Ðаград" - -#: forms.py:113 -#, python-format -msgid "title must be > %d character" -msgid_plural "title must be > %d characters" -msgstr[0] "заглавие должно быть больше %d Ñимвола" -msgstr[1] "заглавие должно быть больше %d Ñимволов" -msgstr[2] "заглавие должно быть больше %d Ñимволов" - -#: forms.py:123 -#, python-format -msgid "The title is too long, maximum allowed size is %d characters" -msgstr "" - -#: forms.py:130 -#, python-format -msgid "The title is too long, maximum allowed size is %d bytes" -msgstr "" +#: views/writers.py:858 +#, fuzzy +msgid "Error - could not find the destination post" +msgstr "Извините, но запрошенный Вами документ не был найден." -#: forms.py:188 +#: views/writers.py:882 #, python-format msgid "" -"Tags are short keywords, with no spaces within. Up to %(max_tags)d tag can " -"be used." -msgid_plural "" -"Tags are short keywords, with no spaces within. Up to %(max_tags)d tags can " -"be used." -msgstr[0] "" -"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " -"%(max_tags)d Ñ‚Ñга одновременно." -msgstr[1] "" -"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " -"%(max_tags)d Ñ‚Ñгов одновременно." -msgstr[2] "" -"ТÑг Ñто короткое ключевое Ñлово без пробелов. Ð’Ñ‹ можете иÑпользовать до " -"%(max_tags)d Ñ‚Ñгов одновременно." - -#: forms.py:258 -msgid "In tags, please use letters, numbers and characters \"-+.#\"" +"Cannot convert, because text has more characters than %(max_chars)s - " +"maximum allowed for comments" msgstr "" -#: forms.py:530 -msgid "Your name (optional):" -msgstr "Ваше Ð¸Ð¼Ñ (не обÑзательно):" - -#: forms.py:531 -msgid "Email:" -msgstr "" -"<strong>Ваш E-mail</strong> (<i>Ð°Ð´Ñ€ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ быть правильным, никогда не " -"показываетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователÑм</i>)" - -#: forms.py:538 -msgid "I don't want to give my email or receive a response:" -msgstr "Я не хочу оÑтавлÑÑ‚ÑŒ Ñвой E-mail Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ получать на него ответы:" - -#: forms.py:560 -msgid "Please mark \"I dont want to give my mail\" field." -msgstr "" -"ПожалуйÑта, отметьте поле \"Я не хочу оÑтавлÑÑ‚ÑŒ Ñвой Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" -"\"." - -#: forms.py:624 -msgid "" -"Subject line is expected in the format: [tag1, tag2, tag3,...] question title" -msgstr "" +#~ msgid "latest questions" +#~ msgstr "новые вопроÑÑ‹" -#: forms.py:1118 -#, python-format -msgid "no %(sitename)s email please, thanks" -msgstr "не хочу получать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ %(sitename)s по email" +#~ msgid "title must be > 10 characters" +#~ msgstr "заголовок должен иметь Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ 10 букв" -#: lamson_handlers.py:126 tests/reply_by_email_tests.py:49 -msgid "======= Reply above this line. ====-=-=" -msgstr "" +#~ msgid "question content must be > 10 characters" +#~ msgstr "Ñодержание вопроÑа должно быть более 10-ти букв" -#: lamson_handlers.py:130 -msgid "" -"Your message was malformed. Please make sure to qoute the " -"original notification you received at the end of your reply." -msgstr "" - -#: lamson_handlers.py:147 -msgid "" -"You were replying to an email address unknown to the system or you " -"were replying from a different address from the one where you " -"received the notification." -msgstr "" - -#: urls.py:44 -msgid "help/" -msgstr "help/" - -#: urls.py:123 -msgid "widgets/" -msgstr "widgets/" - -#: conf/access_control.py:8 -msgid "Access control settings" -msgstr "Войти как пользователь" - -#: conf/access_control.py:17 -msgid "Allow only registered user to access the forum" -msgstr "" -"Разрешить только зарегиÑтрированным пользователÑм получать доÑтуп к форуму" +#~ msgid "" +#~ "Tags are short keywords, with no spaces within. Up to five tags can be " +#~ "used." +#~ msgstr "" +#~ "Теги - ключевые Ñлова, характеризующие вопроÑ. Теги отделÑÑŽÑ‚ÑÑ Ð¿Ñ€Ð¾Ð±ÐµÐ»Ð¾Ð¼, " +#~ "может быть иÑпользовано до 5 тегов." -#: conf/email.py:38 -msgid "Enable email alerts" -msgstr "РаÑÑылать Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email" +#~ msgid "use-these-chars-in-tags" +#~ msgstr "иÑпользуйте только буквы и Ñимвол Ð´ÐµÑ„Ð¸Ñ \"-\"" -#: conf/email.py:284 -msgid "Enable posting answers and comments by email" -msgstr "Разрешить отвечать и комментировать по email" +#~ msgid "Your name:" +#~ msgstr "Ваше имÑ:" -#: conf/email.py:287 -msgid "To enable this feature make sure lamson is running" -msgstr "" +#~ msgid "this email will be linked to gravatar" +#~ msgstr "Ðтот Ð°Ð´Ñ€ÐµÑ Ð°ÑÑоциирован Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¼ аватаром (gravatar)" -#: conf/email.py:298 -msgid "Reply by email hostname" -msgstr "" +#~ msgid "no community email please, thanks" +#~ msgstr "ÑпаÑибо - не надо" -#: conf/email.py:311 -msgid "" -"Email replies having fewer words than this number will be posted as comments " -"instead of answers" -msgstr "" +#~ msgid "Banners" +#~ msgstr "Баннеры" -#: conf/forum_data_rules.py:21 -msgid "Enable embedding videos. " -msgstr "" +#~ msgid "LDAP service provider name" +#~ msgstr "Ð˜Ð¼Ñ Ð¿Ñ€Ð¾Ð²Ð°Ð¹Ð´ÐµÑ€Ð° ÑервиÑа авторизации LDAP" -#: conf/forum_data_rules.py:23 -#, python-format -msgid "<em>Note: please read <a href=\"%(url)s\">read this</a> first.</em>" -msgstr "" -"<em>Внимание: пожалуйÑта, Ñначала прочитайте <a " -"href=\"%(url)s>Ñтот документ</a>.</em>" +#~ msgid "URL for the LDAP service" +#~ msgstr "URL, по которому доÑтупен ÑÐµÑ€Ð²Ð¸Ñ LDAP" -#: conf/forum_data_rules.py:96 -msgid "Minimum length of title (number of characters)" -msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° Ð·Ð°Ð³Ð»Ð°Ð²Ð¸Ñ (количеÑтво Ñимволов)" +#~ msgid "Explain how to change LDAP password" +#~ msgstr "Об‎‎ъÑÑните здеÑÑŒ, как изменить LDAP пароль" -#: conf/forum_data_rules.py:106 -msgid "Minimum length of question body (number of characters)" -msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° вопроÑа (количеÑтво Ñимволов)" +#~ msgid "Sharing content on social networks" +#~ msgstr "РаÑпроÑтранение информации по Ñоциальным ÑетÑм" -#: conf/forum_data_rules.py:117 -msgid "Minimum length of answer body (number of characters)" -msgstr "ÐœÐ¸Ð½Ð¸Ð¼Ð°Ð»ÑŒÐ½Ð°Ñ Ð´Ð»Ð¸Ð½Ð½Ð° ответа (количеÑтво Ñимволов)" +#~ msgid "Unanswered" +#~ msgstr "неотвеченные" -#: conf/forum_data_rules.py:126 -msgid "Are tags required?" -msgstr "ОбÑзательны ли теги?" +#~ msgid "favorite" +#~ msgstr "закладки" -#: conf/ldap.py:9 -msgid "LDAP login configuration" -msgstr "" +#~ msgid "received award" +#~ msgstr "получена награда" -#: conf/ldap.py:26 -msgid "LDAP URL" -msgstr "" +#~ msgid "question_answered" +#~ msgstr "question_answered" -#: conf/ldap.py:35 -msgid "LDAP BASE DN" -msgstr "" +#~ msgid "question_commented" +#~ msgstr "question_commented" -#: conf/ldap.py:43 -msgid "LDAP Search Scope" -msgstr "" +#~ msgid "answer_commented" +#~ msgstr "answer_commented" -#: conf/ldap.py:52 -msgid "LDAP Server USERID field name" -msgstr "Ðазвание Ð¿Ð¾Ð»Ñ USERID на Ñервере LDAP" +#~ msgid "answer_accepted" +#~ msgstr "answer_accepted" -#: conf/ldap.py:61 -msgid "LDAP Server \"Common Name\" field name" -msgstr "" +#~ msgid "off" +#~ msgstr "отключить" -#: conf/ldap.py:70 -msgid "LDAP Server EMAIL field name" -msgstr "Ðазвание Ð¿Ð¾Ð»Ñ EMAIL на Ñервере LDAP" +#~ msgid "exclude ignored" +#~ msgstr "иÑключить игнорируемые" -#: conf/leading_sidebar.py:12 -msgid "Common left sidebar" -msgstr "ÐžÐ±Ñ‰Ð°Ñ Ð»ÐµÐ²Ð°Ñ Ð±Ð¾ÐºÐ¾Ð²Ð°Ñ Ð¿Ð°Ð½ÐµÐ»ÑŒ" +#~ msgid "only selected" +#~ msgstr "только избранные" -#: conf/leading_sidebar.py:20 -msgid "Enable left sidebar" -msgstr "Включить левую боковую панель" +#~ msgid "Incorrect username." +#~ msgstr "Ðеправильное Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ." -#: conf/leading_sidebar.py:29 -msgid "HTML for the left sidebar" -msgstr "HTML код Ð´Ð»Ñ Ð»ÐµÐ²Ð¾Ð¹ боковой панели." - -#: conf/leading_sidebar.py:32 -msgid "" -"Use this area to enter content at the LEFT sidebarin HTML format. When " -"using this option, please use the HTML validation service to make sure that " -"your input is valid and works well in all browsers." -msgstr "" -"ИÑпользуйте Ñту облаÑÑ‚ÑŒ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñодержимого LEFT боковой панели HTML " -"формата. Когда иÑпользуете Ñту опцию , иÑпользуйте ÑÐµÑ€Ð²Ð¸Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ HTML Ð´Ð»Ñ " -"того что б убедитÑÑ Ñ‡Ñ‚Ð¾ она Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ Ð¸ работает во вÑех браузерах" - -#: conf/license.py:13 -msgid "Content License" -msgstr "Содержание лицензии" - -#: conf/minimum_reputation.py:190 -msgid "Post answers and comments by email" -msgstr "" +#~ msgid "your email needs to be validated see %(details_url)s" +#~ msgstr "" +#~ "пожалуйÑта подтвердите ваш email, Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ (<a href=" +#~ "\"%(details_url)s\">здеÑÑŒ</a>)" -#: conf/user_settings.py:32 -msgid "Allow users change own email addresses" -msgstr "Разрешить пользователÑм менÑÑ‚ÑŒ их Ñлектронные почтовые адреÑа." +#~ msgid "" +#~ "<p>To ask by email, please:</p>\n" +#~ "<ul>\n" +#~ " <li>Format the subject line as: [Tag1; Tag2] Question title</li>\n" +#~ " <li>Type details of your question into the email body</li>\n" +#~ "</ul>\n" +#~ "<p>Note that tags may consist of more than one word, and tags\n" +#~ "may be separated by a semicolon or a comma</p>\n" +#~ msgstr "" +#~ "<p>Чтобы задавать вопроÑÑ‹ по email, пожалуйÑта:</p>\n" +#~ "<ul>\n" +#~ " <li>Отформатируйте поле темы как: [ТÑг1; ТÑг2] Заголовок вопроÑа</" +#~ "li>\n" +#~ " <li>Введите Ñодержимое Ñвоего вопроÑа в теле пиÑьма</li>\n" +#~ "</ul>\n" +#~ "<p>Учтите, что Ñ‚Ñги могут Ñодержать более одного Ñлова и могут быть " +#~ "отделены друг-от-друга запÑтой или точкой Ñ Ð·Ð°Ð¿Ñтой</p>\n" + +#~ msgid "%(name)s, this is an update message header for %(num)d question" +#~ msgid_plural "" +#~ "%(name)s, this is an update message header for %(num)d questions" +#~ msgstr[0] "%(name)s, в Ñтом %(num)d вопроÑе еÑÑ‚ÑŒ новоÑти" +#~ msgstr[1] "%(name)s, в Ñтих %(num)d вопроÑах еÑÑ‚ÑŒ новоÑти" +#~ msgstr[2] "%(name)s, в Ñтих %(num)d вопроÑах еÑÑ‚ÑŒ новоÑти" -#: conf/user_settings.py:68 -msgid "Default avatar for users" -msgstr "Стандартный аватар Ð´Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹" +#~ msgid "" +#~ "Please visit the askbot and see what's new! Could you spread the word " +#~ "about it - can somebody you know help answering those questions or " +#~ "benefit from posting one?" +#~ msgstr "" +#~ "ПожалуйÑта, зайдите на наш форум и поÑмотрите что еÑÑ‚ÑŒ нового. Может быть " +#~ "Ð’Ñ‹ раÑÑкажете другим о нашем Ñайте или кто-нибудь из Ваших знакомых может " +#~ "ответить на Ñти вопроÑÑ‹ или извлечь пользу из ответов?" -#: conf/user_settings.py:70 -msgid "" -"To change the avatar image, select new file, then submit this whole form." -msgstr "" -"Чтобы изменить аватар, выберите новый файл, а затем отправьте Ñту форму." +#~ msgid "" +#~ "Your most frequent subscription setting is 'daily' on selected questions. " +#~ "If you are receiving more than one email per dayplease tell about this " +#~ "issue to the askbot administrator." +#~ msgstr "" +#~ "Ваша наиболее чаÑÑ‚Ð°Ñ Ð½Ð°Ñтройка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email - ежедневнаÑ. ЕÑли вы " +#~ "получаете email чаще, пожалуйÑта, извеÑтите админиÑтратора форума." -#: conf/user_settings.py:83 -msgid "Use automatic avatars from gravatar.com" -msgstr "ИÑпользовать аватары Ñ ÑервиÑа gravatar.com" +#~ msgid "" +#~ "Your most frequent subscription setting is 'weekly' if you are receiving " +#~ "this email more than once a week please report this issue to the askbot " +#~ "administrator." +#~ msgstr "" +#~ "Ваша наиболее чаÑÑ‚Ð°Ñ Ð½Ð°Ñтройка Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ñ Ð¿Ð¾ email - еженедельнаÑ. ЕÑли " +#~ "вы получаете email чаще, пожалуйÑта, извеÑтите админиÑтратора форума." -#: conf/user_settings.py:85 -msgid "" -"Check this option if you want to allow the use of gravatar.com for avatars. " -"Please, note that this feature might take about 10 minutes to become fully " -"effective. You will have to enable uploaded avatars as well. For more " -"information, please visit <a href=\"http://askbot.org/doc/optional-modules." -"html#uploaded-avatars\">this page</a>." -msgstr "" -"Включите Ñту опцию еÑли вы хотите разрешить иÑпользовать gravatar.com Ð´Ð»Ñ " -"аватаров. Имейте в виду, что любые Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² Ñтой функции вÑтупÑÑ‚ в Ñилу " -"приблизительно через 10 минут. Ð’Ñ‹ также можете загружать аватары. Ð”Ð»Ñ " -"Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ð¹ информации поÑетите <a href=\"http://askbot.org/doc/" -"optional-modules.html#uploaded-avatars\">Ñту Ñтраницу</a>." +#~ msgid "" +#~ "There is a chance that you may be receiving links seen before - due to a " +#~ "technicality that will eventually go away. " +#~ msgstr "" +#~ "Ðе иÑключено что Ð’Ñ‹ можете получить ÑÑылки, которые видели раньше. Ðто " +#~ "иÑчезнет ÑпуÑÑ‚Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ðµ времÑ." -#: conf/vote_rules.py:87 -msgid "" -"Minimum days to accept an answer, if it has not been accepted by the " -"question poster" -msgstr "" -"Минимум дней чтобы принÑÑ‚ÑŒ ответ, еÑли он не был принÑÑ‚ автором вопроÑа" +#~ msgid "" +#~ "go to %(email_settings_link)s to change frequency of email updates or " +#~ "%(admin_email)s administrator" +#~ msgstr "" +#~ "<a href=\"%(email_settings_link)s\">ЗдеÑÑŒ</a> Ð’Ñ‹ можете изменить чаÑтоту " +#~ "раÑÑылки. ЕÑли возникнет необходимоÑÑ‚ÑŒ - пожалуйÑта ÑвÑжитеÑÑŒ Ñ " +#~ "админиÑтратором форума по %(admin_email)s." -#: conf/widgets.py:13 -msgid "Embeddable widgets" -msgstr "Ð’Ñтраиваемые виджеты" +#~ msgid "" +#~ "Sorry, only original author of the question - %(username)s - can accept " +#~ "or unaccept the best answer" +#~ msgstr "" +#~ "К Ñожалению, только автор вопроÑа - %(username)s - может принÑÑ‚ÑŒ лучший " +#~ "ответ" -#: conf/widgets.py:25 -msgid "Number of questions to show" -msgstr "КоличеÑтво отображаемых вопроÑов" +#~ msgid "cannot vote for own posts" +#~ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð³Ð¾Ð»Ð¾Ñовать за ÑобÑтвенные ÑообщениÑ" -#: conf/widgets.py:28 -msgid "" -"To embed the widget, add the following code to your site (and fill in " -"correct base url, preferred tags, width and height):<iframe src=" -"\"{{base_url}}/widgets/questions?tags={{comma-separated-tags}}\" width=\"100%" -"\" height=\"300\"scrolling=\"no\"><p>Your browser does not support iframes.</" -"p></iframe>" -msgstr "" -"Чтобы вÑтроить виджет , добавьте Ñледующий код на Вашем Ñайте (и заполнить " -"правильный URL-Ð°Ð´Ñ€ÐµÑ Ð±Ð°Ð·Ñ‹, привилегированные теги, ширина и выÑота): iframe " -"src=\"{{base_url}}/widgets/questions?tags={{comma-separated-tags}}\" width=" -"\"100%\" height=\"300\"scrolling=\"no\"><p> Ваш браузер не поддерживает " -"фреймы. </p></iframe>" +#~ msgid "" +#~ "uploading images is limited to users with >%(min_rep)s reputation points" +#~ msgstr "" +#~ "загрузка изображений доÑтупна только пользователÑм Ñ Ñ€ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸ÐµÐ¹ > " +#~ "%(min_rep)s" -#: conf/widgets.py:73 -msgid "CSS for the questions widget" -msgstr "CSS Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° вопроÑов" +#~ msgid "blocked users cannot post" +#~ msgstr "заблокированные пользователи не могут размещать ÑообщениÑ" -#: conf/widgets.py:81 -msgid "Header for the questions widget" -msgstr "Хеддер Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° вопроÑов" +#~ msgid "suspended users cannot post" +#~ msgstr "временно заблокированные пользователи не могут размещать ÑообщениÑ" -#: conf/widgets.py:90 -msgid "Footer for the questions widget" -msgstr "Футер Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñного виджета." +#~ msgid "cannot flag message as offensive twice" +#~ msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð¿Ð¾Ð¼ÐµÑ‚Ð¸Ñ‚ÑŒ Ñообщение как оÑкорбительное дважды" -#: const/__init__.py:131 -msgid "received badge" -msgstr "получена награда" +#~ msgid "blocked users cannot flag posts" +#~ msgstr "заблокированные пользователи не могут помечать ÑообщениÑ" -#: const/__init__.py:202 -msgid "answered question" -msgstr "ответил" +#~ msgid "suspended users cannot flag posts" +#~ msgstr "приоÑтановленные пользователи не могут помечать ÑообщениÑ" -#: const/__init__.py:205 -msgid "accepted answer" -msgstr "принÑÑ‚ лучший ответ" +#~ msgid "need > %(min_rep)s points to flag spam" +#~ msgstr "необходимо > %(min_rep)s баллов чтобы отметить как Ñпам" -#: const/message_keys.py:40 -msgid "" -"Sorry, your account appears to be blocked and you cannot make new posts " -"until this issue is resolved. Please contact the forum administrator to " -"reach a resolution." -msgstr "" +#~ msgid "%(max_flags_per_day)s exceeded" +#~ msgstr "%(max_flags_per_day)s превышен" -#: const/message_keys.py:45 models/__init__.py:788 -msgid "" -"Sorry, your account appears to be suspended and you cannot make new posts " -"until this issue is resolved. You can, however edit your existing posts. " -"Please contact the forum administrator to reach a resolution." -msgstr "" +#~ msgid "cannot revoke old vote" +#~ msgstr "Ð³Ð¾Ð»Ð¾Ñ Ð½Ðµ может быть отозван" -#: deps/django_authopenid/forms.py:450 -msgid "sorry, there is no such user name" -msgstr "к Ñожалению, Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем нет" +#~ msgid "Re: \"%(title)s\"" +#~ msgstr "Re: \"%(title)s\"" -#: management/commands/send_email_alerts.py:425 -#, python-format -msgid "" -"<p>Dear %(name)s,</p><p>The following question has been updated " -"%(sitename)s</p>" -msgid_plural "" -"<p>Dear %(name)s,</p><p>The following %(num)d questions have been updated on " -"%(sitename)s:</p>" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +#~ msgid "Question: \"%(title)s\"" +#~ msgstr "ВопроÑ: \"%(title)s\"" -#: management/commands/send_email_alerts.py:474 -#, python-format -msgid "" -"<p>Please remember that you can always <a hrefl\"%(email_settings_link)s" -"\">adjust</a> frequency of the email updates or turn them off entirely.<br/" -">If you believe that this message was sent in an error, please email about " -"it the forum administrator at %(admin_email)s.</p><p>Sincerely,</p><p>Your " -"friendly %(sitename)s server.</p>" -msgstr "" +#~ msgid "%(author)s modified the question" +#~ msgstr "%(author)s отредактировали вопроÑ" -#: middleware/forum_mode.py:53 -#, python-format -msgid "Please log in to use %s" -msgstr "ПожалуйÑта войдите чтобы иÑпользовать %s" +#~ msgid "%(people)s posted %(new_answer_count)s new answers" +#~ msgstr "%(people)s задали новых %(new_answer_count)s вопроÑов" -#: models/__init__.py:359 -#, python-format -msgid "" -"Sorry, you will be able to accept this answer only after %(will_be_able_at)s" -msgstr "" -"Извините, вы Ñможете принÑÑ‚ÑŒ Ñтот ответ только через %(will_be_able_at)s" +#~ msgid "%(people)s commented the question" +#~ msgstr "%(people)s оÑтавили комментарии" -#: models/__init__.py:367 -#, python-format -msgid "" -"Sorry, only moderators or original author of the question - %(username)s - " -"can accept or unaccept the best answer" -msgstr "" -"Извините, только модераторы или автор вопроÑа - %(username)s - могут " -"принимать или отклонÑÑ‚ÑŒ лучший ответ" +#~ msgid "%(people)s commented answers" +#~ msgstr "%(people)s комментировали вопроÑÑ‹" -#: models/__init__.py:390 -msgid "Sorry, you cannot vote for your own posts" -msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ Ð³Ð¾Ð»Ð¾Ñовать за ÑобÑтвенные ÑообщениÑ" +#~ msgid "%(people)s commented an answer" +#~ msgstr "%(people)s комментировали ответы" -#: models/__init__.py:433 -#, python-format -msgid "sorry, file uploading requires karma >%(min_rep)s" -msgstr "" +#~ msgid "Badges summary" +#~ msgstr "Ðаграды" -#: models/__init__.py:775 -msgid "You have flagged this question before and cannot do it more than once" -msgstr "Ð’Ñ‹ уже отметили Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐºÐ°Ðº неумеÑтный и повторÑÑ‚ÑŒ Ñту операцию не разрешаетÑÑ." +#~ msgid "silver badge description" +#~ msgstr "ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: как правило, приÑуждаетÑÑ Ð·Ð° большой вклад" -#: models/__init__.py:783 -msgid "Sorry, since your account is blocked you cannot flag posts as offensive" -msgstr "" -"К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете " -"ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ ÐºÐ°Ðº неумеÑтные" +#~ msgid "" +#~ "Before asking the question - please make sure to use search to see " +#~ "whether your question has alredy been answered." +#~ msgstr "" +#~ "Перед тем как задать Ð²Ð¾Ð¿Ñ€Ð¾Ñ - пожалуйÑта, не забудьте иÑпользовать поиÑк, " +#~ "чтобы убедитьÑÑ, что ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐµÑ‰Ðµ не имеет ответа." -#: models/__init__.py:794 -#, python-format -msgid "" -"Sorry, to flag posts as offensive a minimum reputation of %(min_rep)s is " -"required" -msgstr "К Ñожалению, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚ÐµÐ³Ð¾Ð² требуетÑÑ %(min_rep)s баллов кармы" +#~ msgid "What questions should I avoid asking?" +#~ msgstr "Каких вопроÑов мне Ñледует избегать?" -#: models/__init__.py:815 -#, python-format -msgid "" -"Sorry, you have exhausted the maximum number of %(max_flags_per_day)s " -"offensive flags per day." -msgstr "" +#~ msgid "" +#~ "is a Q&A site, not a discussion group. Therefore - please avoid having " +#~ "discussions in your answers, comment facility allows some space for brief " +#~ "discussions." +#~ msgstr "" +#~ "ÑвлÑетÑÑ Ð¼ÐµÑтом <strong>ответов/вопроÑов, а не группой обÑуждениÑ</" +#~ "strong>. ПоÑтому - пожалуйÑта, избегайте обÑÑƒÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² Ñвоих ответах. " +#~ "Комментарии позволÑÑŽÑ‚ лишь краткое обÑуждение." -#: models/__init__.py:827 -msgid "cannot remove non-existing flag" -msgstr "Ð½ÐµÐ»ÑŒÐ·Ñ ÑƒÐ´Ð°Ð»Ð¸Ñ‚ÑŒ неÑущеÑтвующий флаг" +#~ msgid "" +#~ "The reputation system allows users earn the authorization to perform a " +#~ "variety of moderation tasks." +#~ msgstr "" +#~ "СиÑтема репутации (кармы) позволÑет пользователÑм приобретать различные " +#~ "управленчеÑкие права." -#: models/__init__.py:833 -msgid "Sorry, since your account is blocked you cannot remove flags" -msgstr "" -"К Ñожалению, так как Ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ заблокирована Ð’Ñ‹ не можете удалÑÑ‚ÑŒ " -"отметки о неумеÑтном Ñодержании." +#~ msgid "How does reputation system work?" +#~ msgstr "Как работает карма?" -#: models/__init__.py:837 -msgid "" -"Sorry, your account appears to be suspended and you cannot remove flags. " -"Please contact the forum administrator to reach a resolution." -msgstr "" +#~ msgid "Rep system summary" +#~ msgstr "" +#~ "Когда за Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ голоÑуют, пользователь который оÑтавил Ñто " +#~ "Ñообщение, получит некоторое количеÑтво баллов, которые называютÑÑ \"очки " +#~ "репутации\". Ðти балы Ñлужат грубой мерой Ð´Ð¾Ð²ÐµÑ€Ð¸Ñ ÑообщеÑтва Ñтому " +#~ "пользователю и предоÑтавлÑÑŽÑ‚ ему различные права модератора." -#: models/__init__.py:843 -#, python-format -msgid "Sorry, to flag posts a minimum reputation of %(min_rep)d is required" -msgid_plural "" -"Sorry, to flag posts a minimum reputation of %(min_rep)d is required" -msgstr[0] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d балл кармы" -msgstr[1] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d балла кармы" -msgstr[2] "Ð”Ð»Ñ Ð¾Ñ‚Ð¼ÐµÑ‚ÐºÐ¸ неумеÑтных Ñообщений требуетÑÑ %(min_rep)d баллов кармы" +#~ msgid "\"edit any answer" +#~ msgstr "редактировать любой ответ" -#: models/__init__.py:862 -msgid "you don't have the permission to remove all flags" -msgstr "у Ð²Ð°Ñ Ð½ÐµÑ‚Ñƒ прав чтобы удалить вÑе обжалованные ÑообщениÑ" +#~ msgid "\"delete any comment" +#~ msgstr "удалÑÑ‚ÑŒ любые комментарии" -#: models/__init__.py:863 -#, fuzzy -msgid "no flags for this entry" -msgstr "без заметок на Ñту запиÑÑŒ" +#~ msgid "what is gravatar" +#~ msgstr "Как изменить мою картинку (gravatar) и что такое gravatar?" -#: models/__init__.py:953 -msgid "sorry, but older votes cannot be revoked" -msgstr "" +#~ msgid "gravatar faq info" +#~ msgstr "" +#~ "<p>Картинка ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ Ð¿Ð¾ÑвлÑетÑÑ Ð² профиле Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð½Ð°Ð·Ñ‹Ð²Ð°ÐµÑ‚ÑÑ " +#~ "<strong>gravatar</strong> (<strong>\"g\"</strong> значит глобальный " +#~ "<strong>аватар</strong>).</p><p> Как Ñто работает? \n" +#~ "<strong>КриптографичеÑкий ключ</strong> вычиÑлÑетÑÑ Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ email " +#~ "адреÑа. Ð’Ñ‹ загружаете вашу любимую картинку (или картинку вашего второго " +#~ "Ñ) на Ñайт <a href='http://gravatar.com'><strong>gravatar.com</strong></" +#~ "a> откуда мы потом получим вашу картинку иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ ÐºÐ»ÑŽÑ‡.</p><p>Таким " +#~ "образом вÑе Ñайты которым вы доверÑете могут показывать ваш аватар Ñ€Ñдом " +#~ "Ñ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ ÑообщениÑми при Ñтом email Ð°Ð´Ñ€ÐµÑ Ð±ÑƒÐ´ÐµÑ‚ оÑтаватьÑÑ Ð·Ð°Ñекреченным." +#~ "</p><p>ПожалуйÑта <strong>приукраÑьте вашу учётную запиÑÑŒ</strong> " +#~ "картинкой — проÑто зарегиÑтрируйтеÑÑŒ на <a href='http://gravatar." +#~ "com'><strong>gravatar.com</strong></a> (иÑпользуйте тот-же email Ð°Ð´Ñ€ÐµÑ " +#~ "что и при региÑтрации на нашем Ñайте). Ð˜Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ðµ отображаютÑÑ " +#~ "по умолчанию генерируютÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки.</p>" -#: models/__init__.py:2389 -#, python-format -msgid "\"%(title)s\"" -msgstr "\"%(title)s\"" +#~ msgid "" +#~ "Please ask your question at %(ask_question_url)s, help make our community " +#~ "better!" +#~ msgstr "" +#~ "Задайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² %(ask_question_url)s, помогите Ñделать наше " +#~ "ÑообщеÑтво лучше!" -#: models/reply_by_email.py:71 -msgid "edited by email" -msgstr "отредактировано по email" +#~ msgid "(please enter a valid email)" +#~ msgstr "(пожалуйÑта, введите правильный Ð°Ð´Ñ€ÐµÑ Ñлектронной почты)" -#: skins/common/templates/authopenid/changeemail.html:2 -#: skins/common/templates/authopenid/changeemail.html:8 -#: skins/common/templates/authopenid/changeemail.html:49 -msgid "Change Email" -msgstr "Изменить Ð°Ð´Ñ€ÐµÑ Ñлектронной почты" +#~ msgid "<p>Dear %(receiving_user_name)s,</p>" +#~ msgstr "<p>Уважаемый %(receiving_user_name)s,</p>" -#: skins/common/templates/authopenid/changeemail.html:15 -#, python-format -msgid "" -"<span class=\\\"strong big\\\">Enter your new email into the box below</" -"span> if \n" -"you'd like to use another email for <strong>update subscriptions</strong>.\n" -"<br>Currently you are using <strong>%%(email)s</strong>" -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s left a <a href=\"%(post_url)s\">new comment</a>:" +#~ "</p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s оÑтавить <a href=\"%(post_url)s\">новый " +#~ "комментарий</a>:</p>\n" -#: skins/common/templates/authopenid/changeemail.html:19 -#, python-format -msgid "" -"<span class='strong big'>Please enter your email address in the box below.</" -"span>\n" -"Valid email address is required on this Q&A forum. If you like, \n" -"you can <strong>receive updates</strong> on interesting questions or entire\n" -"forum via email. Also, your email is used to create a unique \n" -"<a href='%%(gravatar_faq_url)s'><strong>gravatar</strong></a> image for " -"your\n" -"account. Email addresses are never shown or otherwise shared with anybody\n" -"else." -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s left a <a href=\"%(post_url)s\">new comment</" +#~ "a></p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s оÑтавить <a href=\"%(post_url)s\">новый " +#~ "комментарий</a></p>\n" -#: skins/common/templates/authopenid/changeemail.html:38 -msgid "" -"<strong>Your new Email:</strong> \n" -"(will <strong>not</strong> be shown to anyone, must be valid)" -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s answered a question \n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s ответил на вопроÑ\n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -#: skins/common/templates/authopenid/changeemail.html:61 -#, python-format -msgid "" -"<span class=\\\"strong big\\\">An email with a validation link has been sent " -"to \n" -"%%(email)s.</span> Please <strong>follow the emailed link</strong> with " -"your \n" -"web browser. Email validation is necessary to help insure the proper use " -"of \n" -"email on <span class=\\\"orange\\\">Q&A</span>. If you would like to " -"use \n" -"<strong>another email</strong>, please <a \n" -"href='%%(change_email_url)s'><strong>change it again</strong></a>." -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s posted a new question \n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s задал новый вопроÑ\n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -#: skins/common/templates/authopenid/changeemail.html:73 -#, python-format -msgid "" -"<span class=\\\"strong big\\\">Your email address %%(email)s has not been " -"changed.\n" -"</span> If you decide to change it later - you can always do it by editing \n" -"it in your user profile or by using the <a \n" -"href='%%(change_email_url)s'><strong>previous form</strong></a> again." -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s updated an answer to the question\n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s обновил ответ на вопроÑ\n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#~ "\n" -#: skins/common/templates/authopenid/changeemail.html:83 -#, python-format -msgid "" -"\n" -"<span class='big strong'>Your email address is now set to %%(email)s.</" -"span> \n" -"Updates on the questions that you like most will be sent to this address. \n" -"Email notifications are sent once a day or less frequently - only when " -"there \n" -"are any news." -msgstr "" +#~ msgid "" +#~ "\n" +#~ "<p>%(update_author_name)s updated a question \n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" +#~ msgstr "" +#~ "\n" +#~ "<p>%(update_author_name)s обновил вопроÑ\n" +#~ "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" -#: skins/common/templates/authopenid/changeemail.html:94 -msgid "" -"<span class=\\\"big strong\\\">Thank you for verifying your email!</span> " -"Now \n" -"you can <strong>ask</strong> and <strong>answer</strong> questions. Also " -"if \n" -"you find a very interesting question you can <strong>subscribe for the \n" -"updates</strong> - then will be notified about changes <strong>once a day</" -"strong>\n" -"or less frequently." -msgstr "" +#~ msgid "<p>Sincerely,<br/>Forum Administrator</p>" +#~ msgstr "<p>С уважением,<br/>ÐдминиÑÑ‚Ñ€Ð°Ñ†Ð¸Ñ Ð¤Ð¾Ñ€ÑƒÐ¼Ð°</p>" -#: skins/common/templates/authopenid/changeemail.html:102 -msgid "Validation email not sent" -msgstr "Емайл Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ адреÑа не выÑлан" +#~ msgid "page number %(num)s" +#~ msgstr "Ñтраница номер %(num)s" -#: skins/common/templates/authopenid/changeemail.html:105 -#, python-format -msgid "" -"<span class='big strong'>Your current email address %%(email)s has been \n" -"validated before</span> so the new key was not sent. You can <a \n" -"href='%%(change_link)s'>change</a> email used for update subscriptions if \n" -"necessary." -msgstr "" +#~ msgid "posts per page" +#~ msgstr "Ñообщений на Ñтранице" -#: skins/common/templates/authopenid/complete.html:23 -msgid "User registration" -msgstr "РегиÑтрациÑ" +#~ msgid "add comment" +#~ msgstr "добавить" -#: skins/common/templates/authopenid/complete.html:60 -msgid "<strong>Receive forum updates by email</strong>" -msgstr "" +#~ msgid "see <strong>%(counter)s</strong> more" +#~ msgid_plural "see <strong>%(counter)s</strong> more" +#~ msgstr[0] "Ñмотреть еще <strong>%(counter)s</strong>" +#~ msgstr[1] "Ñмотреть еще <strong>%(counter)s</strong>" +#~ msgstr[2] "Ñмотреть еще <strong>%(counter)s</strong>" -#: skins/common/templates/authopenid/confirm_email.txt:11 -#: skins/common/templates/authopenid/email_validation.txt:13 -msgid "" -"Sincerely,\n" -"Q&A Forum Administrator" -msgstr "С уважением, админиÑтратор форума" +#~ msgid "see <strong>%(counter)s</strong> more comment" +#~ msgid_plural "" +#~ "see <strong>%(counter)s</strong> more comments\n" +#~ " " +#~ msgstr[0] "Ñмотреть ещё <strong>%(counter)s</strong> комментарий" +#~ msgstr[1] "Ñмотреть ещё <strong>%(counter)s</strong> комментариÑ" +#~ msgstr[2] "Ñмотреть ещё <strong>%(counter)s</strong> комментариев" -#: skins/common/templates/authopenid/email_validation.txt:9 -msgid "" -"If you believe that this message was sent in mistake - \n" -"no further action is needed. Just ignore this email, we apologize\n" -"for any inconvenience" -msgstr "" -"ЕÑли вы Ñчитаете, что Ñообщение было отправлено по ошибке - никаких " -"дальнейших дейÑтвий не требуетÑÑ. ПроÑто проигнорируйте Ñто пиÑьмо, мы " -"приноÑим Ñвои Ð¸Ð·Ð²Ð¸Ð½ÐµÐ½Ð¸Ñ Ð·Ð° причиненные неудобÑтва." +#~ msgid "one of these is required" +#~ msgstr "необходим Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ один из" -#: skins/common/templates/authopenid/signin.html:28 -msgid "" -"Choose your favorite service below to sign in using secure OpenID or similar " -"technology. Your external service password always stays confidential and you " -"don't have to rememeber or create another one." -msgstr "" -"Ð”Ð»Ñ Ð²Ñ…Ð¾Ð´Ð° на Ñайт выберите Ñлужбу OpenID или подобную ей технологию. Пароль " -"от Ñтой внешней Ñлужбы оÑтанетÑÑ ÐºÐ¾Ð½Ñ„Ð¸Ð´ÐµÐ½Ñ†Ð¸Ð°Ð»ÑŒÐ½Ñ‹Ð¼ и вам не нужно запоминать " -"или Ñоздавать ещё один." +#~ msgid "i like this post (click again to cancel)" +#~ msgstr "мне понравилÑÑ Ñтот поÑÑ‚ (щелкните Ñнова, чтобы отменить)" -#: skins/common/templates/authopenid/signin.html:89 -msgid "or enter your <span>user name and password</span>, then sign in" -msgstr "" -"либо введите ваше <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль</span>, затем " -"войдите" +#~ msgid "i dont like this post (click again to cancel)" +#~ msgstr "мне не понравилÑÑ Ñтот поÑÑ‚ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" -#: skins/common/templates/authopenid/signin.html:93 -msgid "Please, sign in" -msgstr "ПожалуйÑта, войдите здеÑÑŒ" +#~ msgid "" +#~ "The question has been closed for the following reason \"%(close_reason)s" +#~ "\" by" +#~ msgstr "" +#~ "Ð’Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» закрыт по Ñледующим причинам \"%(close_reason)s\", автор:" -#: skins/common/templates/authopenid/signup_with_password.html:26 -msgid "" -"<span class='strong big'>If you prefer, create your forum login name and \n" -"password here. However</span>, please keep in mind that we also support \n" -"<strong>OpenID</strong> login method. With <strong>OpenID</strong> you can \n" -"simply reuse your external login (e.g. Gmail or AOL) without ever sharing \n" -"your login details with anyone and having to remember yet another password." -msgstr "" +#~ msgid "oldest answers" +#~ msgstr "Ñамые Ñтарые ответы" -#: skins/common/templates/authopenid/signup_with_password.html:41 -msgid "<strong>Receive periodic updates by email</strong>" -msgstr "" +#~ msgid "newest answers" +#~ msgstr "Ñамые новые ответы" -#: skins/common/templates/question/answer_controls.html:19 -msgid "remove offensive flag" -msgstr "убрать флаги" +#~ msgid "popular answers" +#~ msgstr "популÑрные ответы" -#: skins/common/templates/question/answer_controls.html:21 -#: skins/common/templates/question/question_controls.html:16 -msgid "remove flag" -msgstr "убрать флаг" +#~ msgid "i like this answer (click again to cancel)" +#~ msgstr "мне нравитÑÑ Ñтот ответ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" -#: skins/common/templates/question/answer_vote_buttons.html:8 -msgid "mark this answer as correct (click again to undo)" -msgstr "отметить Ñтот ответ как правильный (нажмите ещё раз чтобы отменить)" +#~ msgid "i dont like this answer (click again to cancel)" +#~ msgstr "мне не нравитÑÑ Ñтот ответ (нажмите еще раз Ð´Ð»Ñ Ð¾Ñ‚Ð¼ÐµÐ½Ñ‹)" -#: skins/common/templates/question/closed_question_info.html:2 -#, python-format -msgid "" -"The question has been closed for the following reason <b>\"%(close_reason)s" -"\"</b> <i>by" -msgstr "" -"Ð’Ð¾Ð¿Ñ€Ð¾Ñ Ð±Ñ‹Ð» закрыт по такой причине:\n" -"<b>\"%(close_reason)s\"</b> <i> " +#~ msgid "mark this answer as favorite (click again to undo)" +#~ msgstr "" +#~ "отметить Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐºÐ°Ðº интереÑный (еще раз - чтобы удалить закладку)" -#: skins/common/templates/widgets/edit_post.html:22 -msgid ", one of these is required" -msgstr "одно из Ñтого обÑзательно" +#~ msgid "answer permanent link" +#~ msgstr "поÑтоÑÐ½Ð½Ð°Ñ ÑÑылка на ответ" -#: skins/common/templates/widgets/edit_post.html:31 -#: skins/common/templates/widgets/edit_post.html:36 -msgid "tags:" -msgstr "Ñ‚Ñги:" +#~ msgid "Notify me once a day when there are any new answers" +#~ msgstr "" +#~ "<strong>Информировать менÑ</strong> раз в день, еÑли еÑÑ‚ÑŒ новые ответы" -#: skins/common/templates/widgets/related_tags.html:3 -#: skins/default/templates/tags.html:4 -msgid "Tags" -msgstr "ТÑги" +#~ msgid "Notify me weekly when there are any new answers" +#~ msgstr "Еженедельно информировать о новых ответах" -#: skins/common/templates/widgets/tag_selector.html:19 -#: skins/common/templates/widgets/tag_selector.html:36 -msgid "add" -msgstr " + " +#~ msgid "Notify me immediately when there are any new answers" +#~ msgstr "" +#~ "<strong>Информировать менÑ</strong> немедленно, еÑли еÑÑ‚ÑŒ новый ответ" -#: skins/default/templates/ask.html:4 -#: skins/default/templates/widgets/ask_button.html:5 -#: skins/default/templates/widgets/ask_form.html:43 -msgid "Ask Your Question" -msgstr "Задайте Ваш вопроÑ" +#~ msgid "once you sign in you will be able to subscribe for any updates here" +#~ msgstr "" +#~ "<span class='strong'>ЗдеÑÑŒ</span> (когда Ð’Ñ‹ авторизированы) Ð’Ñ‹ можете " +#~ "подпиÑатÑÑ Ð½Ð° переодичеÑкие почтовые Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñтом вопроÑе" -#: skins/default/templates/badges.html:8 -#, python-format -msgid "" -"Below is the list of available badges and number \n" -" of times each type of badge has been awarded. Have ideas about fun \n" -"badges? Please, give us your <a href='%(feedback_faq_url)s'>feedback</a>\n" -msgstr "" -"Ðиже приведен ÑпиÑок доÑтупных наград и чиÑло награждений каждой из них. " -"ЕÑÑ‚ÑŒ Ð¸Ð´ÐµÑ Ð¾ новой клаÑÑной награде? Тогда отправьте её нам через <a " -"href='%(feedback_faq_url)s'>обратную ÑвÑзь</a>\n" +#~ msgid "you can answer anonymously and then login" +#~ msgstr "" +#~ "<span class='strong big'>Ð’Ñ‹ можете ответить анонимно</span> - ваш ответ " +#~ "будет Ñохранён within вмеÑте Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ÑеÑÑией и опубликуетÑÑ Ð¿Ð¾Ñле того " +#~ "как вы войдёте или зарегиÑтрируетеÑÑŒ. ПожалуйÑта поÑтарайтеÑÑŒ дать " +#~ "<strong>полезный ответ</strong>, Ð´Ð»Ñ Ð´Ð¸ÑкуÑÑи, <strong>пожалуйÑта " +#~ "иÑпользуйте кометарии</strong> и <strong>и не забывайте о голоÑовании</" +#~ "strong> (поÑле того как вы войдёте)!" + +#~ msgid "answer your own question only to give an answer" +#~ msgstr "" +#~ "<span class='big strong'>Ð’Ñ‹ конечно можете ответить на Ñвой вопроÑ</" +#~ "span>, но пожалуйÑта убедитеÑÑŒ что вы<strong>ответили</strong>. Помните " +#~ "что вы вÑегда можете <strong>переÑмотреть Ñвой ​​вопроÑ</strong>. " +#~ "ПожалуйÑта <strong>иÑпользуйте комментарии Ð´Ð»Ñ Ð¾Ð±ÑуждениÑ</strong> и " +#~ "<strong>и не забывайте голоÑовать</strong> за те ответы что вам " +#~ "понравилиÑÑŒ или те что не понравилиÑÑŒ! " + +#~ msgid "please only give an answer, no discussions" +#~ msgstr "" +#~ "<span class='big strong'>ПожалуйÑта ÑтарайтеÑÑŒ дать ÑущеÑтвенный ответ</" +#~ "span>. ЕÑли вы хотите напиÑать комментарий на Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸Ð»Ð¸ ответ, тогда " +#~ "<strong>иÑпользуйте комментарии</strong>. ПожалуйÑта помните что вы " +#~ "вÑегда можете <strong>переÑмотреть ваши ответы</strong> — не надо " +#~ "отвечать на один Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð´Ð²Ð°Ð¶Ð´Ñ‹. Также, пожалуйÑта <strong>не забывайте " +#~ "голоÑовать</strong> — Ñто дейÑтвительно помогает найти лучшие " +#~ "ответы и вопроÑÑ‹!" -#: skins/default/templates/badges.html:41 -msgid "" -"Gold badge is the highest award in this community. To obtain it have to " -"show \n" -"profound knowledge and ability in addition to your active participation." -msgstr "" +#~ msgid "Login/Signup to Post Your Answer" +#~ msgstr "Войти / ЗарегиÑтрироватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ ответить" -#: skins/default/templates/badges.html:51 -msgid "" -"msgid \"silver badge: occasionally awarded for the very high quality " -"contributions" -msgstr "ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: как правило, приÑуждаетÑÑ Ð·Ð° большой вклад" +#~ msgid "Answer the question" +#~ msgstr "Ответить на вопроÑ" -#: skins/default/templates/faq_static.html:8 -msgid "" -"Before you ask - please make sure to search for a similar question. You can " -"search questions by their title or tags." -msgstr "" -"Перед тем как задать Ð²Ð¾Ð¿Ñ€Ð¾Ñ - пожалуйÑта, не забудьте иÑпользовать поиÑк, " -"чтобы убедитьÑÑ, что ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÐµÑ‰Ðµ не имеет ответа." +#~ msgid "subsribe to rss feed" +#~ msgstr "подпиÑатьÑÑ Ð½Ð° RSS-канал Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов" -#: skins/default/templates/faq_static.html:10 -msgid "What kinds of questions should be avoided?" -msgstr "Каких вопроÑов мне Ñледует избегать?" +#~ msgid "Question tags" +#~ msgstr "ВопроÑÑ‹" -#: skins/default/templates/faq_static.html:14 -msgid "" -"is a <strong>question and answer</strong> site - <strong>it is not a " -"discussion group</strong>. Please avoid holding debates in your answers as " -"they tend to dilute the essense of questions and answers. For the brief " -"discussions please use commenting facility." -msgstr "" +#~ msgid "Stats:" +#~ msgstr "СтатиÑтика" -#: skins/default/templates/faq_static.html:18 -msgid "" -"Karma system allows users to earn rights to perform a variety of moderation " -"tasks" -msgstr "" -"СиÑтема репутации (кармы) позволÑет пользователÑм приобретать различные " -"права модератора." +#~ msgid "question asked" +#~ msgstr "Задан" -#: skins/default/templates/faq_static.html:20 -msgid "How does karma system work?" -msgstr "Как работает карма?" +#~ msgid "question was seen" +#~ msgstr "ПроÑмотрен" -#: skins/default/templates/faq_static.html:21 -msgid "" -"When a question or answer is upvoted, the user who posted them will gain " -"some points, which are called \\\"karma points\\\". These points serve as a " -"rough measure of the community trust to him/her. Various moderation tasks " -"are gradually assigned to the users based on those points." -msgstr "" +#~ msgid "last updated" +#~ msgstr "поÑледнее обновление" -#: skins/default/templates/faq_static.html:61 -msgid "edit any answer" -msgstr "править любой ответ" +#~ msgid "Tag list" +#~ msgstr "СпиÑок тегов" -#: skins/default/templates/faq_static.html:65 -msgid "delete any comment" -msgstr "удалить любой коментарий" +#~ msgid "reputation" +#~ msgstr "карма" -#: skins/default/templates/faq_static.html:69 -msgid "How to change my picture (gravatar) and what is gravatar?" -msgstr "" +#~ msgid "change %(email)s info" +#~ msgstr "" +#~ "<span class=\"strong big\">Введите ваш новый email в поле ввода ниже</" +#~ "span> еÑли вы хотите иÑпользовать другой email Ð´Ð»Ñ <strong>почтовых " +#~ "уведомлений</strong>.<br>Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð²Ñ‹ иÑпользуете <strong>%(email)s</strong>" -#: skins/default/templates/faq_static.html:70 -msgid "" -"<p>The picture that appears on the users profiles is called " -"<strong>gravatar</strong> (which means <strong>g</strong>lobally <strong>r</" -"strong>ecognized <strong>avatar</strong>).</p><p>Here is how it works: a " -"<strong>cryptographic key</strong> (unbreakable code) is calculated from " -"your email address. You upload your picture (or your favorite alter ego " -"image) the website <a href='http://gravatar.com'><strong>gravatar.com</" -"strong></a> from where we later retreive your image using the key.</" -"p><p>This way all the websites you trust can show your image next to your " -"posts and your email address remains private.</p><p>Please " -"<strong>personalize your account</strong> with an image - just register at " -"<a href='http://gravatar.com'><strong>gravatar.com</strong></a> (just please " -"be sure to use the same email address that you used to register with us). " -"Default image that looks like a kitchen tile is generated automatically.</p>" -msgstr "" +#~ msgid "here is why email is required, see %(gravatar_faq_url)s" +#~ msgstr "" +#~ "<span class='strong big'>ПожалуйÑта введите ваш email в поле ввода ниже." +#~ "</span> Правильный email нужен на Ñтом форуме ВопроÑов и Ответов. ЕÑли " +#~ "вы хотите, вы можете <strong>получать обновлениÑ</strong> интереÑных " +#~ "вопроÑов или вÑего форума через email. Также, ваш email иÑпользуетÑÑ Ð´Ð»Ñ " +#~ "того чтобы Ñоздать уникальный <a " +#~ "href='%(gravatar_faq_url)s'><strong>аватар</strong></a>, картинку Ð´Ð»Ñ " +#~ "вашей учётной запиÑи. Email никогда не показываетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователÑм " +#~ "или ещё кому-то другому." + +#~ msgid "Your new Email" +#~ msgstr "Ваш новый Email" + +#~ msgid "Your Email" +#~ msgstr "Ваш E-mail" + +#~ msgid "validate %(email)s info or go to %(change_email_url)s" +#~ msgstr "" +#~ "<span class=\"strong big\">Email Ñ ÑÑылкой Ð¿Ð¾Ð´Ñ‚Ð²ÐµÑ€Ð¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½ " +#~ "%(email)s.</span> ПожалуйÑта <strong>перейдите по ÑÑылки в пиÑьме</" +#~ "strong> в вашем браузере. Проверка Ñлектронной почты необходима Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ " +#~ "чтобы убедитьÑÑ Ð² правильноÑти email на форуме <span class=\"orange" +#~ "\">ВопроÑов&Ответов</span>. ЕÑли вы желаете иÑпользовать " +#~ "<strong>другой email</strong>, пожалуйÑта <a " +#~ "href='%(change_email_url)s'><strong>измените его Ñнова</strong></a>." + +#~ msgid "old %(email)s kept, if you like go to %(change_email_url)s" +#~ msgstr "" +#~ "<span class=\"strong big\">Ваш email Ð°Ð´Ñ€ÐµÑ %(email)s не изменилÑÑ.</span> " +#~ "ЕÑли вы решите изменить его позже - вы вÑегда можете Ñделать Ñто " +#~ "отредактировав ваш профиль или иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ <a " +#~ "href='%(change_email_url)s'><strong>предыдущую форму</strong></a> Ñнова." -#: skins/default/templates/faq_static.html:80 -#, python-format -msgid "" -"Please <a href='%(ask_question_url)s'>ask</a> your question, help make our " -"community better!" -msgstr "" -"Задайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð² %(ask_question_url)s!" +#~ msgid "your current %(email)s can be used for this" +#~ msgstr "" +#~ "<span class='big strong'>Ваш email Ð°Ð´Ñ€ÐµÑ Ñ‚ÐµÐ¿ÐµÑ€ÑŒ уÑтановлен в %(email)s.</" +#~ "span> ÐžÐ±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð² тех вопроÑах что вам нравÑÑ‚ÑÑ Ð±ÑƒÐ´ÑƒÑ‚ идти туда. " +#~ "Почтовые ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿Ñ€Ð°Ð²Ð»ÑÑŽÑ‚ÑÑ Ñ€Ð°Ð· в день или реже - только тогда " +#~ "когда еÑÑ‚ÑŒ новоÑти." -#: skins/default/templates/feedback.html:30 -msgid "(to hear from us please enter a valid email or check the box below)" -msgstr "" -"(чтобы получать от Ð½Ð°Ñ ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´Ð¸Ñ‚Ðµ правильный email-Ð°Ð´Ñ€ÐµÑ Ð¸Ð»Ð¸ " -"отметьте переключатель ниже)" +#~ msgid "thanks for verifying email" +#~ msgstr "" +#~ "<span class=\"big strong\">СпаÑибо за то что подтвердили email!</span> " +#~ "Теперь вы можете <strong>Ñпрашивать</strong> и <strong>отвечать</strong> " +#~ "на вопроÑÑ‹. Также еÑли вы найдёте очень интереÑный Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð²Ñ‹ можете " +#~ "<strong>подпиÑатьÑÑ Ð½Ð° обновление</strong> - тогда Ð²Ð°Ñ Ð±ÑƒÐ´ÑƒÑ‚ уведомлÑÑ‚ÑŒ " +#~ "<strong>раз в день</strong> или реже." -#: skins/default/templates/feedback.html:55 -msgid "(Please solve the captcha)" -msgstr "(ПожалуйÑта введити капчу)" +#~ msgid "email key not sent" +#~ msgstr "Email ключ не отоÑлан" -#: skins/default/templates/help.html:2 skins/default/templates/help.html:4 -msgid "Help" -msgstr "Помощь" +#~ msgid "email key not sent %(email)s change email here %(change_link)s" +#~ msgstr "" +#~ "email ключ не отоÑлан на %(email)s, изменить email здеÑÑŒ %(change_link)s" -#: skins/default/templates/help.html:7 -#, python-format -msgid "Welcome %(username)s," -msgstr "ЗдравÑтвуйте %(username)s," +#~ msgid "register new %(provider)s account info, see %(gravatar_faq_url)s" +#~ msgstr "" +#~ "<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %(provider)s.</" +#~ "span> ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> и Ñохраните " +#~ "Ñвой <strong>email</strong> адреÑ. Сохраненный email Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ " +#~ "вам<strong>подпиÑыватьÑÑ Ð½Ð° изменениÑ</strong> наиболее интереÑных " +#~ "вопроÑов и будет иÑпользоватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ñоздать и получать в дальнейшем " +#~ "уникальное изображение Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ аватара - <a " +#~ "href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" -#: skins/default/templates/help.html:9 -msgid "Welcome," -msgstr "Добро пожаловать," +#~ msgid "" +#~ "%(username)s already exists, choose another name for \n" +#~ " %(provider)s. Email is required too, see " +#~ "%(gravatar_faq_url)s\n" +#~ " " +#~ msgstr "" +#~ "<p><span class='strong big'>К Ñожалению looks похоже что Ð¸Ð¼Ñ " +#~ "%(username)s иÑпользуетÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пользователем.</span></p><p>ПожалуйÑта " +#~ "выберите другое Ð¸Ð¼Ñ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð¼ÐµÑте Ñ Ð²Ð°ÑˆÐ¸Ð¼ %(provider)s " +#~ "логином. Также, правильный email Ð°Ð´Ñ€ÐµÑ Ð½ÑƒÐ¶ÐµÐ½ Ð´Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° форуме " +#~ "<span class='orange'>ВопроÑов&Ответов</span>. Ваш email Ð°Ð´Ñ€ÐµÑ " +#~ "иÑпользуетÑÑ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾ чтобы Ñоздать уникальный <a " +#~ "href='%(gravatar_faq_url)s'><strong>аватар</strong></a>, картинку ÐºÐ¾Ñ‚Ð¾Ñ€Ð°Ñ " +#~ "аÑÑоциируетÑÑ Ñ Ð²Ð°ÑˆÐµÐ¹ учётной запиÑью. ЕÑли вы хотите, вы можете " +#~ "<strong>получать уведомлениÑ</strong> о интереÑных вопроÑах или о вÑём " +#~ "форуме через email. Email Ð°Ð´Ñ€ÐµÑ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не показываетÑÑ ÐºÐ¾Ð¼Ñƒ-то ещё.</p>" -#: skins/default/templates/help.html:13 -#, python-format -msgid "Thank you for using %(app_name)s, here is how it works." -msgstr "" -"СпаÑибо вам что иÑпользуете %(app_name)s, дальше немного о том как Ñто " -"работает." +#~ msgid "" +#~ "register new external %(provider)s account info, see %(gravatar_faq_url)s" +#~ msgstr "" +#~ "<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ %(provider)s.</" +#~ "span> ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> the same as " +#~ "your %(provider)s login name or choose some other nickname.</p><p>Also, " +#~ "please save a valid <strong>email</strong> address. With the email you " +#~ "can <strong>subscribe for the updates</strong> on the most interesting " +#~ "questions. Email address is also used to create and retrieve your unique " +#~ "avatar image - <a href='%(gravatar_faq_url)s'><strong>gravatar</strong></" +#~ "a>.</p>" + +#~ msgid "register new Facebook connect account info, see %(gravatar_faq_url)s" +#~ msgstr "" +#~ "<p><span class=\"big strong\">Ð’Ñ‹ впервые вошли Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Facebook.</span> " +#~ "ПожалуйÑта, задайте <strong>отображаемое имÑ</strong> и Ñохраните Ñвой " +#~ "<strong>email</strong> адреÑ. Сохраненный email Ð°Ð´Ñ€ÐµÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ‚ " +#~ "вам<strong>подпиÑыватьÑÑ Ð½Ð° изменениÑ</strong> наиболее интереÑных " +#~ "вопроÑов и будет иÑпользоватьÑÑ Ñ‡Ñ‚Ð¾Ð±Ñ‹ Ñоздать и получать в дальнейшем " +#~ "уникальное изображение Ð´Ð»Ñ Ð²Ð°ÑˆÐµÐ³Ð¾ аватара - <a " +#~ "href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" -#: skins/default/templates/help.html:16 -msgid "" -"This site is for asking and answering questions, not for open-ended " -"discussions." -msgstr "Ðтот Ñайт Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов и ответов на них, не Ð´Ð»Ñ Ð´Ð¾Ð»Ð³Ð¸Ñ… диÑкуÑÑий." +#~ msgid "This account already exists, please use another." +#~ msgstr "Ðта ÑƒÑ‡Ñ‘Ñ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ уже ÑущеÑтвует, пожалуйÑта иÑпользуйте другую." -#: skins/default/templates/help.html:17 -msgid "" -"We encourage everyone to use “question†space for asking and “answer†for " -"answering." -msgstr "" -"Мы призываем каждого иÑпользовать меÑто “вопроÑÐ¾Ð²â€ Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñов, а меÑто Ð´Ð»Ñ " -"â€œÐ¾Ñ‚Ð²ÐµÑ‚Ð¾Ð²â€ Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð¾Ð² ÑоответÑтвенно." +#~ msgid "Screen name label" +#~ msgstr "<strong>Логин</strong>(<i>ваш ник, будет показан другим</i>)" -#: skins/default/templates/help.html:20 -msgid "" -"Despite that, each question and answer can be commented – \n" -" the comments are good for the limited discussions." -msgstr "" -"ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° Ñто, каждый Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð¸ ответ может быть прокомментирован - " -"комментарии хороши Ð´Ð»Ñ Ð½ÐµÐ±Ð¾Ð»ÑŒÑˆÐ¸Ñ… диÑкуÑÑий." +#~ msgid "receive updates motivational blurb" +#~ msgstr "" +#~ "<strong>Получать Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¾Ñ€ÑƒÐ¼Ð° по email</strong> - Ñто поможет нашему " +#~ "ÑообщеÑтву раÑти и ÑтановитьÑÑ Ð±Ð¾Ð»ÐµÐµ полезным.<br/>По-умолчанию, <span " +#~ "class='orange'>Q&A</span> форум отÑылает<strong> одно пиÑьмо Ñ " +#~ "изменениÑми в неделю</strong> - только, еÑли за Ñто Ð²Ñ€ÐµÐ¼Ñ Ð¿Ð¾ÑвилиÑÑŒ " +#~ "обновлениÑ.<br/>ЕÑли хотите, измените Ñту наÑтройку ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸Ð»Ð¸ в любое " +#~ "другое Ð²Ñ€ÐµÐ¼Ñ Ð² Ñвоей учетной запиÑи пользователÑ." -#: skins/default/templates/help.html:24 -#, python-format -msgid "" -"Voting in %(app_name)s helps to select best answers and thank most helpful " -"users." -msgstr "" -"ГолоÑование в %(app_name)s помогает найти лучшие ответы и отблагодарить " -"наиболее полезным пользователÑм." +#~ msgid "please select one of the options above" +#~ msgstr "пожалуйÑта, выберите один из вариантов выше" -#: skins/default/templates/help.html:26 -#, python-format -msgid "" -"Please vote when you find helpful information,\n" -" it really helps the %(app_name)s community." -msgstr "" -"ПожалуйÑта голоÑуйте когда найдёте полезную информацию,\n" -" Ñто дейÑтвительно помогает ÑообщеÑтву %(app_name)s." +#~ msgid "Tag filter tool will be your right panel, once you log in." +#~ msgstr "" +#~ "Фильтр тегов будет в правой панели, поÑле того, как вы войдете в ÑиÑтему." -#: skins/default/templates/help.html:29 -msgid "" -"Besides, you can @mention users anywhere in the text to point their " -"attention,\n" -" follow users and conversations and report inappropriate content by " -"flagging it." -msgstr "" -"Кроме того, вы можете @упоминать пользователей в текÑте, чтобы привлечь их " -"внимание, подпиÑывайтеÑÑŒ на пользователей и разговоры, и уведомлÑйте о " -"неумеÑтном Ñодержании Ð¾Ñ‚Ð¼ÐµÑ‡Ð°Ñ ÐµÐ³Ð¾." +#~ msgid "Please enter your <span>user name and password</span>, then sign in" +#~ msgstr "" +#~ "ПожалуйÑта, введите ваши <span>Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль</span>, затем " +#~ "войдите" -#: skins/default/templates/help.html:32 -msgid "Enjoy." -msgstr "ÐаÑлаждайтеÑÑŒ." +#~ msgid "Login" +#~ msgstr "Войти" -#: skins/default/templates/instant_notification_reply_by_email.html:3 -msgid "" -"\n" -"\n" -"======= Reply above this line. ====-=-=\n" -msgstr "" +#~ msgid "Enter new password" +#~ msgstr "Введите новый пароль" -#: skins/default/templates/instant_notification_reply_by_email.html:8 -#, python-format -msgid "" -"\n" -"You can post an answer or a comment by replying to email notifications. To " -"do that\n" -"you need %(reply_by_email_karma_threshold)s karma, you have " -"%(receiving_user_karma)s karma. \n" -msgstr "" +#~ msgid "... or enter by clicking one of the buttons below" +#~ msgstr "... или войдите, нажав одну из кнопок ниже" -#: skins/default/templates/macros.html:545 -#: skins/default/templates/macros.html:552 -#: skins/default/templates/macros.html:584 -#: skins/default/templates/macros.html:591 -#, python-format -msgid "page %(num)s" -msgstr "Ñтраница номер %(num)s" +#~ msgid "Why use OpenID?" +#~ msgstr "ПлюÑÑ‹ иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ OpenID" -#: skins/default/templates/macros.html:610 -#, python-format -msgid "you have %(response_count)s new response" -msgid_plural "you have %(response_count)s new responses" -msgstr[0] "вы получили новый ответ" -msgstr[1] "вы получили %(response_count)s новых ответа" -msgstr[2] "вы получили %(response_count)s новых ответов" +#~ msgid "with openid it is easier" +#~ msgstr "С OpenID вам не надо Ñоздавать новое Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸ пароль." -#: skins/default/templates/question.html:110 -msgid "post a comment / <strong>some</strong> more" -msgstr "добавить комментарий / открыть ещё <strong>неÑколько</strong>" +#~ msgid "reuse openid" +#~ msgstr "" +#~ "С OpenID вы можете иÑпользовать одну учётную запиÑÑŒ Ð´Ð»Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ… Ñайтов " +#~ "которые поддерживаю OpenID." -#: skins/default/templates/question.html:113 -msgid "see <strong>some</strong> more" -msgstr "открыть ещё <strong>неÑколько</strong>" +#~ msgid "openid is widely adopted" +#~ msgstr "" +#~ "Более 160 миллионов пользователей иÑпользует OpenID и более 10 Ñ‚Ñ‹ÑÑч " +#~ "Ñайтов его поддерживают." -#: skins/default/templates/question.html:117 -#: skins/default/templates/question/javascript.html:20 -msgid "post a comment" -msgstr "добавить комментарий" +#~ msgid "openid is supported open standard" +#~ msgstr "" +#~ "OpenID оÑнован на открытом Ñтандарте, поддерживаемом многими " +#~ "организациÑми." -#: skins/default/templates/question.html:140 -msgid "Post Your Answer" -msgstr "Ваш ответ" +#~ msgid "Find out more" +#~ msgstr "Узнать больше" -#: skins/default/templates/question.html:146 -#: skins/default/templates/widgets/ask_form.html:41 -msgid "Login/Signup to Post" -msgstr "Войти/ЗарегиÑтрироватьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð°" +#~ msgid "Get OpenID" +#~ msgstr "Получить OpenID" -#: skins/default/templates/question_retag.html:3 -#: skins/default/templates/question_retag.html:5 -msgid "Retag question" -msgstr "Изменить теги" +#~ msgid "Create Account" +#~ msgstr "Создать учетную запиÑÑŒ" -#: skins/default/templates/reply_by_email_error.html:1 -msgid "" -"\n" -"<p>The system was unable to process your message successfully, the reason " -"being:<p>\n" -msgstr "" +#~ msgid "return to login page" +#~ msgstr "вернутьÑÑ Ðº Ñтранице входа" -#: skins/default/templates/tags.html:14 skins/default/templates/users.html:9 -#: skins/default/templates/main_page/tab_bar.html:15 -msgid "Sort by »" -msgstr " " +#~ msgid "Traditional signup info" +#~ msgstr "" +#~ "<span class='strong big'>ЕÑли вы предпочитаете иÑпользовать традиционные " +#~ "методы входа Ñ Ð»Ð¾Ð³Ð¸Ð½Ð¾Ð¼ и паролем.</span> Ðо помните что мы также " +#~ "поддерживаем логин через <strong>OpenID</strong>. ВмеÑте Ñ " +#~ "<strong>OpenID</strong> вы можете легко иÑпользовать другие ваши учётные " +#~ "запиÑи (Ñ‚.к. Gmail или AOL) без надобноÑти делитьÑÑ Ð²Ð°ÑˆÐ¸Ð¼Ð¸ приватными " +#~ "данными или придумывать ещё один пароль." -#: skins/default/templates/main_page/headline.html:12 -msgid "Tagged" -msgstr "Ð’ тегах" +#~ msgid "answer tips" +#~ msgstr "Советы" -#: skins/default/templates/main_page/nothing_found.html:8 -msgid "Please follow some questions or follow some users." -msgstr "ПожалуйÑта подпишитеÑÑŒ на некоторые вопроÑÑ‹ или пользователей" +#~ msgid "please make your answer relevant to this community" +#~ msgstr "" +#~ "пожалуйÑта поÑтарайтеÑÑŒ дать ответ который будет интереÑен коллегам по " +#~ "форуму" -#: skins/default/templates/main_page/tab_bar.html:11 -msgid "RSS" -msgstr "RSS" +#~ msgid "please try to provide details" +#~ msgstr "включите детали в Ваш ответ" -#: skins/default/templates/question/answer_tab_bar.html:3 -#, python-format -msgid "" -"\n" -" %(counter)s Answer\n" -" " -msgid_plural "" -"\n" -" %(counter)s Answers\n" -" " -msgstr[0] "" -"\n" -" %(counter)s Ответ\n" -" " -msgstr[1] "" -"\n" -" %(counter)s Ответа\n" -" " -msgstr[2] "" -"\n" -" %(counter)s Ответов\n" -" " +#~ msgid "Markdown tips" +#~ msgstr "ПоддерживаетÑÑ Ñзык разметки - Markdown" -#: skins/default/templates/question/answer_tab_bar.html:11 -msgid "Sort by »" -msgstr "Сорт. по »" +#~ msgid "login to post question info" +#~ msgstr "" +#~ "<span class=\"strong big\">ПожалуйÑта, начните задавать Ваш Ð²Ð¾Ñ€Ð¿Ð¾Ñ " +#~ "анонимно</span>. Когда Ð’Ñ‹ пошлете вопроÑ, Ð’Ñ‹ будете направлены на " +#~ "Ñтраницу авторизации. Ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð±ÑƒÐ´ÐµÑ‚ Ñохранён в текущей ÑеÑÑии и будет " +#~ "опубликован как только Ð’Ñ‹ авторизуетеÑÑŒ. Войти или запиÑатьÑÑ Ð½Ð° наш " +#~ "форум очень легко. ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð·Ð°Ð¹Ð¼ÐµÑ‚ не более полминуты а Ð¸Ð·Ð½Ð°Ñ‡Ð°Ð»ÑŒÐ½Ð°Ñ " +#~ "запиÑÑŒ - приблизительно одну минуту." -#: skins/default/templates/question/new_answer_form.html:32 -msgid "" -"<span class='strong big'>Please start posting your answer anonymously</span> " -"- your answer will be saved within the current session and published after " -"you log in or create a new account. Please try to give a <strong>substantial " -"answer</strong>, for discussions, <strong>please use comments</strong> and " -"<strong>please do remember to vote</strong> (after you log in)!" -msgstr "" +#~ msgid "" +#~ "must have valid %(email)s to post, \n" +#~ "\t\t\t\t\t\t\tsee %(email_validation_faq_url)s\n" +#~ "\t\t\t\t\t\t\t" +#~ msgstr "" +#~ "Ð´Ð»Ñ Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñообщений необходим дейÑтвующий Ð°Ð´Ñ€ÐµÑ %(email)s Ñм. " +#~ "%(email_validation_faq_url)s" -#: skins/default/templates/question/new_answer_form.html:36 -msgid "" -"<span class='big strong'>You are welcome to answer your own question</span>, " -"but please make sure to give an <strong>answer</strong>. Remember that you " -"can always <strong>revise your original question</strong>. Please " -"<strong>use comments for discussions</strong> and <strong>please don't " -"forget to vote :)</strong> for the answers that you liked (or perhaps did " -"not like)!" -msgstr "" +#~ msgid "Login/signup to post your question" +#~ msgstr "Войдите/ЗарегиÑтрируйтеÑÑŒ чтобы опубликовать Ваш ворпоÑ" -#: skins/default/templates/question/new_answer_form.html:38 -msgid "" -"<span class='big strong'>Please try to give a substantial answer</span>. If " -"you wanted to comment on the question or answer, just <strong>use the " -"commenting tool</strong>. Please remember that you can always <strong>revise " -"your answers</strong> - no need to answer the same question twice. Also, " -"please <strong>don't forget to vote</strong> - it really helps to select the " -"best questions and answers!" -msgstr "ПоÑтарайтеÑÑŒ дать развёрнутый ответ. Будет отлично, еÑли вы Ñможете чем-то его подтвердить." +#~ msgid "Ask your question" +#~ msgstr "Задайте Ваш вопроÑ" -#: skins/default/templates/question/sidebar.html:38 -msgid "subscribe to rss feed" -msgstr "подпиÑатьÑÑ Ð½Ð° rss" +#~ msgid "click here to see old astsup forum" +#~ msgstr "" +#~ "Вдохните глоток прошлого - почитайте Ñтарый добрый asterisk-support.ru" -#: skins/default/templates/question/sidebar.html:46 -msgid "Stats" -msgstr "СтатиÑтика" +#~ msgid "Old AstSup" +#~ msgstr "Ñтарый форум" -#: skins/default/templates/question/sidebar.html:48 -msgid "Asked" -msgstr "Задан" +#~ msgid "ask a question" +#~ msgstr "задать вопроÑ" -#: skins/default/templates/question/sidebar.html:51 -msgid "Seen" -msgstr "ПроÑмотрен" +#~ msgid "logout" +#~ msgstr "выход" -#: skins/default/templates/question/sidebar.html:54 -msgid "Last updated" -msgstr "Обновлен" +#~ msgid "login" +#~ msgstr "вход" -#: skins/default/templates/question/subscribe_by_email_prompt.html:5 -msgid "Email me when there are any new answers" -msgstr "Информировать Ð¼ÐµÐ½Ñ Ð¾ новых ответах" +#~ msgid "Display tag filter" +#~ msgstr "Фильтр по тегам" -#: skins/default/templates/question/subscribe_by_email_prompt.html:12 -msgid "" -"<span class='strong'>Here</span> (once you log in) you will be able to sign " -"up for the periodic email updates about this question." -msgstr "" -"<strong>ЗдеÑÑŒ</strong> (когда Ð’Ñ‹ авторизированы) Ð’Ñ‹ можете подпиÑатÑÑ Ð½Ð° " -"переодичеÑкие почтовые Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ Ñтом вопроÑе." +#~ msgid "rss feed" +#~ msgstr "RSS-канал" -#: skins/default/templates/user_profile/user_edit.html:59 -msgid "(cannot be changed)" -msgstr "(не может быть изменено)" +#~ msgid "%(q_num)s question, tagged" +#~ msgid_plural "%(q_num)s questions, tagged" +#~ msgstr[0] "%(q_num)s вопроÑ, по темам" +#~ msgstr[1] "%(q_num)s вопроÑа, по темам" +#~ msgstr[2] "%(q_num)s вопроÑов, по темам" -#: skins/default/templates/user_profile/user_email_subscriptions.html:9 -msgid "" -"<span class='big strong'>Adjust frequency of email updates.</span> Receive " -"updates on interesting questions by email, <strong><br/>help the community</" -"strong> by answering questions of your colleagues. If you do not wish to " -"receive emails - select 'no email' on all items below.<br/>Updates are only " -"sent when there is any new activity on selected items." -msgstr "" +#~ msgid "Please star (bookmark) some questions or follow some users." +#~ msgstr "" +#~ "Отметьте вопроÑÑ‹ закладками или Ñледуйте за наиболее интереÑными Вам " +#~ "пользователÑми" -#: skins/default/templates/user_profile/user_email_subscriptions.html:23 -msgid "Stop Email" -msgstr "" -"Ðе Ñлать Email" +#~ msgid "Related tags" +#~ msgstr "СвÑзанные теги" -#: skins/default/templates/user_profile/user_inbox.html:66 -msgid "remove flags" -msgstr "удалить заметки" +#~ msgid "see your favorite questions" +#~ msgstr "проÑмотр отмеченные вопроÑÑ‹" -#: skins/default/templates/user_profile/user_inbox.html:68 -msgid "delete post" -msgstr "добавить комментарий" +#~ msgid "Views" +#~ msgstr "ПроÑмотров" -#: skins/default/templates/user_profile/user_info.html:58 -msgid "member since" -msgstr "зарегиÑтрирован Ñ" +#~ msgid "Banner views" +#~ msgstr "ПроÑмотров баннера" -#: skins/default/templates/user_profile/user_info.html:69 -msgid "website" -msgstr "Веб-Ñтраница" +#~ msgid "Clicks" +#~ msgstr "Кликов" -#: skins/default/templates/user_profile/user_stats.html:16 -msgid "Answer" -msgid_plural "Answers" -msgstr[0] "Ответ" -msgstr[1] "Ответа" -msgstr[2] "Ответов" +#~ msgid "Banner clicks" +#~ msgstr "Кликов по баннеру" -#: skins/default/templates/user_profile/user_tabs.html:21 -msgid "Graph of user karma" -msgstr "График кармы пользователÑ" +#~ msgid "Banner info" +#~ msgstr "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾ баннере" -#: skins/default/templates/widgets/answer_edit_tips.html:3 -#: skins/default/templates/widgets/question_edit_tips.html:3 -msgid "Tips" -msgstr "" +#~ msgid "Your banner is shown on the site." +#~ msgstr "Ваш баннер отображаетÑÑ Ð½Ð° Ñайте." -#: skins/default/templates/widgets/answer_edit_tips.html:6 -msgid "give an answer interesting to this community" -msgstr "давайте ответы интереÑные Ð´Ð»Ñ Ñтого ÑобщеÑтва" +#~ msgid "Your banner is waiting moderator approval." +#~ msgstr "Ваш баннер ожидает Ð¾Ð´Ð¾Ð±Ñ€ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð°." -#: skins/default/templates/widgets/answer_edit_tips.html:12 -#: skins/default/templates/widgets/question_edit_tips.html:8 -msgid "provide enough details" -msgstr "дайте доÑтаточно информации в Вашем Ñообщении" +#~ msgid "Confirm banner deletion?" +#~ msgstr "Подтверждаете удаление баннера?" -#: skins/default/templates/widgets/answer_edit_tips.html:27 -#: skins/default/templates/widgets/question_edit_tips.html:22 -msgid "Markdown basics" -msgstr "ОÑновы Markdown" +#~ msgid "Delete banner" +#~ msgstr "Удалить баннер" -#: skins/default/templates/widgets/ask_form.html:7 -msgid "" -"<span class=\\\"strong big\\\">You are welcome to start submitting your " -"question anonymously</span>. When you submit the post, you will be " -"redirected to the login/signup page. Your question will be saved in the " -"current session and will be published after you log in. Login/signup process " -"is very simple. Login takes about 30 seconds, initial signup takes a minute " -"or less." -msgstr "" +#~ msgid "For the last 30 days" +#~ msgstr "За поÑледние 30 дней" -#: skins/default/templates/widgets/ask_form.html:11 -#, python-format -msgid "" -"<span class='strong big'>Looks like your email address, %%(email)s has not " -"yet been validated.</span> To post messages you must verify your email, " -"please see <a href='%%(email_validation_faq_url)s'>more details here</a>." -"<br>You can submit your question now and validate email after that. Your " -"question will saved as pending meanwhile." -msgstr "" +#~ msgid "email subscription settings info" +#~ msgstr "" +#~ "<span class='big strong'>ÐаÑтройки чаÑтоты почтовых уведомлений.</span> " +#~ "Получать ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ интереÑных вопроÑах через email, <strong><br/" +#~ ">помогите ÑообщеÑтву</strong> Ð¾Ñ‚Ð²ÐµÑ‡Ð°Ñ Ð½Ð° вопроÑÑ‹ ваших коллег. ЕÑли вы не " +#~ "хотите получать ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð½Ð° email — выберите 'без email' на вÑех " +#~ "Ñлементах ниже.<br/>Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ÑылаютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ тогда, когда еÑÑ‚ÑŒ " +#~ "Ð½Ð¾Ð²Ð°Ñ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ в выбранных Ñлементах." -#: skins/default/templates/widgets/footer.html:33 -#, python-format -msgid "Content on this site is licensed under a %(license)s" -msgstr "Содержимое Ñтого Ñайта раÑпроÑтранÑетÑÑ Ð¿Ð¾Ð´ лицензией %(license)s" +#~ msgid "Stop sending email" +#~ msgstr "Ðе Ñлать email" -#: skins/default/templates/widgets/footer.html:40 -#: skins/default/templates/widgets/user_navigation.html:17 -msgid "help" -msgstr "помощь" +#~ msgid "member for" +#~ msgstr "ÑоÑтоит пользователем" -#: skins/default/templates/widgets/question_edit_tips.html:5 -msgid "ask a question interesting to this community" -msgstr "задавайте интереÑные вопроÑÑ‹ Ð´Ð»Ñ Ñтого ÑобщеÑтва" +#~ msgid "age unit" +#~ msgstr "лет" -#: skins/default/templates/widgets/scope_nav.html:6 -msgid "ALL" -msgstr "ВСЕ" +#~ msgid "graph of user reputation" +#~ msgstr "график кармы" -#: skins/default/templates/widgets/scope_nav.html:8 -msgid "UNANSWERED" -msgstr "БЕЗ ОТВЕТÐ" +#~ msgid "reputation history" +#~ msgstr "карма" -#: skins/default/templates/widgets/scope_nav.html:11 -msgid "see your followed questions" -msgstr "поÑмотреть Ñообщений на которые Ð’Ñ‹ подпиÑалиÑÑŒ" +#~ msgid "recent activity" +#~ msgstr "поÑледнÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑÑ‚ÑŒ" -#: skins/default/templates/widgets/scope_nav.html:11 -msgid "FOLLOWED" -msgstr "ИЗБРÐÐÐЫЕ" +#~ msgid "casted votes" +#~ msgstr "голоÑа" -#: skins/default/templates/widgets/scope_nav.html:14 -msgid "Please ask your question here" -msgstr "Задавайте Ñвой Ð²Ð¾Ð¿Ñ€Ð¾Ñ Ð·Ð´ÐµÑÑŒ" +#~ msgid "no items in counter" +#~ msgstr "нет" -#: skins/default/templates/widgets/user_navigation.html:9 -msgid "sign out" -msgstr "выход" +#~ msgid "choose a username" +#~ msgstr "выбрать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#: templates/widgets/user_navigation.html:20 -msgid "Hi there! Please sign in" -msgstr "вход" +#~ msgid "choose password" +#~ msgstr "выбрать пароль" -#: templatetags/extra_filters_jinja.py:279 -msgid "no" -msgstr "нет" +#~ msgid "retype password" +#~ msgstr "введите пароль еще раз" -#: utils/forms.py:60 -msgid "Choose a screen name" -msgstr "выбрать Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" +#~ msgid "subscription saved, %(email)s needs validation, see %(details_url)s" +#~ msgstr "подпиÑка Ñохранена, %(email)s требует проверки, Ñм. %(details_url)s" -#: utils/forms.py:75 -msgid "please use at least some alphabetic characters in the user name" -msgstr "пожалуйÑта иÑпользуйте Ñ…Ð¾Ñ‚Ñ Ð±Ñ‹ некоторые Ñимволы алфавита в имени" +#~ msgid "%(badge_count)d %(badge_level)s badge" +#~ msgid_plural "%(badge_count)d %(badge_level)s badges" +#~ msgstr[0] "%(badge_count)d %(badge_level)s медаль" +#~ msgstr[1] "%(badge_count)d %(badge_level)s медали" +#~ msgstr[2] "%(badge_count)d %(badge_level)s медалей" -#: utils/forms.py:138 -msgid "Your email <i>(never shared)</i>" -msgstr "" +#~ msgid "user reputation in the community" +#~ msgstr "карма пользователÑ" -#: utils/forms.py:173 -msgid "Password <i>(please retype)</i>" -msgstr "" +#~ msgid "LDAP Server USERID field name" +#~ msgstr "Ðазвание Ð¿Ð¾Ð»Ñ USERID на Ñервере LDAP" -#: views/commands.py:112 -msgid "Sorry, anonymous users cannot vote" -msgstr "Ðеавторизованные пользователи не могут голоÑовать" +#~ msgid "Embeddable widgets" +#~ msgstr "Ð’Ñтраиваемые виджеты" -#: views/commands.py:339 -#, python-format -msgid "" -"Your subscription is saved, but email address %(email)s needs to be " -"validated, please see <a href=\"%(details_url)s\">more details here</a>" -msgstr "" -"Ваша подпиÑка Ñохранена, но email-Ð°Ð´Ñ€ÐµÑ %(email)s требует проверки, <a " -"href='%(details_url)s'>подробнее читайте здеÑÑŒ</a>" +#~ msgid "Number of questions to show" +#~ msgstr "КоличеÑтво отображаемых вопроÑов" -#: views/commands.py:620 -msgid "Please sign in to delete/restore posts" -msgstr "ПожалуйÑта, войдите чтобы удалÑÑ‚ÑŒ/воÑÑтанавливать ÑообщениÑ" +#~ msgid "" +#~ "To embed the widget, add the following code to your site (and fill in " +#~ "correct base url, preferred tags, width and height):<iframe src=" +#~ "\"{{base_url}}/widgets/questions?tags={{comma-separated-tags}}\" width=" +#~ "\"100%\" height=\"300\"scrolling=\"no\"><p>Your browser does not support " +#~ "iframes.</p></iframe>" +#~ msgstr "" +#~ "Чтобы вÑтроить виджет , добавьте Ñледующий код на Вашем Ñайте (и " +#~ "заполнить правильный URL-Ð°Ð´Ñ€ÐµÑ Ð±Ð°Ð·Ñ‹, привилегированные теги, ширина и " +#~ "выÑота): iframe src=\"{{base_url}}/widgets/questions?tags={{comma-" +#~ "separated-tags}}\" width=\"100%\" height=\"300\"scrolling=\"no\"><p> Ваш " +#~ "браузер не поддерживает фреймы. </p></iframe>" -#: views/meta.py:37 -#, python-format -msgid "About %(site)s" -msgstr "О %(site)s" +#~ msgid "Header for the questions widget" +#~ msgstr "Хеддер Ð´Ð»Ñ Ð²Ð¸Ð´Ð¶ÐµÑ‚Ð° вопроÑов" -#: views/users.py:701 -msgid "user karma" -msgstr "карма" +#~ msgid "Footer for the questions widget" +#~ msgstr "Футер Ð´Ð»Ñ Ð²Ð¾Ð¿Ñ€Ð¾Ñного виджета." -#: views/users.py:702 -msgid "Profile - User's Karma" -msgstr "Профиль - Ð ÐµÐ¿ÑƒÑ‚Ð°Ñ†Ð¸Ñ ÐŸÐ¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" +#~ msgid "" +#~ "Below is the list of available badges and number \n" +#~ " of times each type of badge has been awarded. Have ideas about fun \n" +#~ "badges? Please, give us your <a href='%(feedback_faq_url)s'>feedback</a>\n" +#~ msgstr "" +#~ "Ðиже приведен ÑпиÑок доÑтупных наград и чиÑло награждений каждой из них. " +#~ "ЕÑÑ‚ÑŒ Ð¸Ð´ÐµÑ Ð¾ новой клаÑÑной награде? Тогда отправьте её нам через <a " +#~ "href='%(feedback_faq_url)s'>обратную ÑвÑзь</a>\n" -#: views/writers.py:189 -msgid "" -"<span class=\"strong big\">You are welcome to start submitting your question " -"anonymously</span>. When you submit the post, you will be redirected to the " -"login/signup page. Your question will be saved in the current session and " -"will be published after you log in. Login/signup process is very simple. " -"Login takes about 30 seconds, initial signup takes a minute or less." -msgstr "" +#~ msgid "" +#~ "msgid \"silver badge: occasionally awarded for the very high quality " +#~ "contributions" +#~ msgstr "ÑеребрÑÐ½Ð°Ñ Ð½Ð°Ð³Ñ€Ð°Ð´Ð°: как правило, приÑуждаетÑÑ Ð·Ð° большой вклад" #~ msgid "" #~ "This command may help you migrate to LDAP password authentication by " @@ -8693,11 +9682,6 @@ msgstr "" #~ "keys\" наÑтроек Ñайта." #~ msgid "" -#~ "Sincerely,\n" -#~ "Forum Administrator" -#~ msgstr "С уважением, админиÑтратор форума" - -#~ msgid "" #~ "If you beleive that this message was sent in mistake - \n" #~ "no further action is needed. Just ingore this email, we apologize\n" #~ "for any inconvenience" @@ -8744,21 +9728,9 @@ msgstr "" #~ "Впервые здеÑÑŒ? ПоÑмотрите наши <a href=\"%s\">чаÑто задаваемые вопроÑÑ‹" #~ "(FAQ)</a>!" -#~ msgid "Setting groups" -#~ msgstr "ÐаÑтройки групп" - #~ msgid "Login name" #~ msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ" -#~ msgid "" -#~ "Below is the list of available badges and number \n" -#~ "of times each type of badge has been awarded. Give us feedback at " -#~ "%(feedback_faq_url)s.\n" -#~ msgstr "" -#~ "Ðиже приведен ÑпиÑок доÑтупных значков и чиÑло награждений каждым из них. " -#~ "ÐŸÑ€ÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ новым значкам отправлÑйте через обратную ÑвÑзь - " -#~ "%(feedback_faq_url)s." - #, fuzzy #~ msgid "" #~ "You can always adjust frequency of email updates from your %(profile_url)s" @@ -8920,13 +9892,10 @@ msgstr "" #~ msgstr "МеÑтоположение" #~ msgid "command/" -#~ msgstr "command/" +#~ msgstr "komanda/" #~ msgid "search/" -#~ msgstr "search/" - -#~ msgid "allow only selected tags" -#~ msgstr "включить только выбранные Ñ‚Ñги" +#~ msgstr "poisk/" #~ msgid "less answers" #~ msgstr "меньше ответов" @@ -9415,9 +10384,6 @@ msgstr "" #~ msgid "comments/" #~ msgstr "комментарии/" -#~ msgid "delete/" -#~ msgstr "удалить/" - #~ msgid "Account with this name already exists on the forum" #~ msgstr "аккаунт Ñ Ñ‚Ð°ÐºÐ¸Ð¼ именем уже ÑущеÑтвует на форуме" @@ -9456,15 +10422,9 @@ msgstr "" #~ msgid "validate/" #~ msgstr "проверить/" -#~ msgid "change/" -#~ msgstr "заменить/" - #~ msgid "sendkey/" #~ msgstr "поÑлать-ключ/" -#~ msgid "verify/" -#~ msgstr "проверить-ключ/" - #~ msgid "openid/" #~ msgstr "openid/" @@ -9477,9 +10437,6 @@ msgstr "" #~ msgid "Password changed." #~ msgstr "Пароль изменен." -#~ msgid "your email was not changed" -#~ msgstr "Ð°Ð´Ñ€ÐµÑ Ð’Ð°ÑˆÐµÐ¹ Ñлектронной почты не изменён" - #~ msgid "No OpenID %s found associated in our database" #~ msgstr "в нашей базе данных нет OpenID %s" @@ -9533,11 +10490,6 @@ msgstr "" #~ msgid "question" #~ msgstr "вопроÑ" -#~ msgid "Automatically accept user's contributions for the email updates" -#~ msgstr "" -#~ "ÐвоматичеÑки принÑÑ‚ÑŒ ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¾Ñ‚ Ñтого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð´Ð»Ñ Ñ€Ð°ÑÑылки по " -#~ "Ñлетронной почте" - #~ msgid "unanswered/" #~ msgstr "неотвеченные/" @@ -9579,15 +10531,9 @@ msgstr "" #~ msgid "[author]" #~ msgstr "[автор]" -#~ msgid "[publisher]" -#~ msgstr "[издатель]" - #~ msgid "[publication date]" #~ msgstr "[дата публикации]" -#~ msgid "[price]" -#~ msgstr "[Цена]" - #~ msgid "currency unit" #~ msgstr "Ð²Ð°Ð»ÑŽÑ‚Ð½Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ†Ð°" @@ -9612,9 +10558,6 @@ msgstr "" #~ msgid "ask the author" #~ msgstr "ÑпроÑить автора" -#~ msgid "number of times" -#~ msgstr "раз" - #~ msgid "the answer has been accepted to be correct" #~ msgstr "ответ был принÑÑ‚, в качеÑтве правильного" @@ -9663,9 +10606,6 @@ msgstr "" #~ msgid "Found by title" #~ msgstr "Ðайдено по названию" -#~ msgid "Unanswered questions" -#~ msgstr "Ðеотвеченные вопроÑÑ‹" - #~ msgid " One question found" #~ msgid_plural "%(q_num)s questions found" #~ msgstr[0] "Ðайден один Ð²Ð¾Ð¿Ñ€Ð¾Ñ " @@ -9681,9 +10621,6 @@ msgstr "" #~ msgid "on " #~ msgstr "на" -#~ msgid "date closed" -#~ msgstr "дату окончаниÑ" - #~ msgid "Account: change OpenID URL" #~ msgstr "Ð£Ñ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ: Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ OpenID URL" @@ -9788,18 +10725,9 @@ msgstr "" #~ msgid "Connect to %(APP_SHORT_NAME)s with Facebook!" #~ msgstr "Подключение к %(APP_SHORT_NAME)s Ñ Facebook!" -#~ msgid "one revision" -#~ msgid_plural "%(rev_count)s revisions" -#~ msgstr[0] "одна верÑиÑ" -#~ msgstr[1] "%(rev_count)s верÑии правки" -#~ msgstr[2] "%(rev_count)s верÑий правки" - #~ msgid "favorite questions" #~ msgstr "избранные вопроÑÑ‹" -#~ msgid "Email Validation" -#~ msgstr "Проверка Email" - #~ msgid "Thank you, your email is now validated." #~ msgstr "СпаÑибо, Ваш email в наÑтоÑщее Ð²Ñ€ÐµÐ¼Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÑетÑÑ." @@ -9815,9 +10743,6 @@ msgstr "" #~ msgid "The users have been awarded with badges:" #~ msgstr "Ðаграды, приÑужденные пользователÑм:" -#~ msgid "You cannot leave this field blank" -#~ msgstr "Ðто необходимо заполнить" - #~ msgid "no OSQA community email please, thanks" #~ msgstr "ÑпаÑибо, но Ñлектронной почты не надо" @@ -9854,14 +10779,3 @@ msgstr "" #~ msgid "i dont like this question (click again to cancel)" #~ msgstr "мне не нравитьÑÑ Ñтот Ð²Ð¾Ð¿Ñ€Ð¾Ñ (нажмите ещё раз чтобы отменить)" - -#~ msgid "" -#~ "must have valid %(email)s to post, \n" -#~ " see %(email_validation_faq_url)s\n" -#~ " " -#~ msgstr "" -#~ "<span class='strong big'>Похоже что ваш email Ð°Ð´Ñ€ÐµÑ , %(email)s не был " -#~ "подтверждён.</span> Ð”Ð»Ñ Ð¿ÑƒÐ±Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸ Ñообщений вы должны подтвердить ваш " -#~ "email, пожалуйÑта поÑмотрите <a href='%(email_validation_faq_url)s'>Ñто " -#~ "Ð´Ð»Ñ Ð´ÐµÑ‚Ð°Ð»ÐµÐ¹</a>.<br> Ð’Ñ‹ можете отправить ваш Ð²Ð¾Ð¿Ñ€Ð¾Ñ ÑÐµÐ¹Ñ‡Ð°Ñ Ð¸ подтвердить " -#~ "ваш email потом. Ваше Ñообщение будет Ñохранено в очередь. " diff --git a/askbot/management/commands/jinja2_makemessages.py b/askbot/management/commands/jinja2_makemessages.py index 4fa05443..fb772ed9 100644 --- a/askbot/management/commands/jinja2_makemessages.py +++ b/askbot/management/commands/jinja2_makemessages.py @@ -43,11 +43,11 @@ class Command(makemessages.Command): # Extend the regular expressions that are used to detect # translation blocks with an "OR jinja-syntax" clause. trans_real.endblock_re = re.compile( - trans_real.endblock_re.pattern + '|' + r"""^\s*endtrans\s*-?$""") + trans_real.endblock_re.pattern + '|' + r"""^-?\s*endtrans\s*-?$""") trans_real.block_re = re.compile( - trans_real.block_re.pattern + '|' + r"""^\s*trans(?:\s*|$)""") + trans_real.block_re.pattern + '|' + r"""^-?\s*trans(?:\s*|$)""") trans_real.plural_re = re.compile( - trans_real.plural_re.pattern + '|' + r"""^\s*pluralize(\s+\w+)?-?$""") + trans_real.plural_re.pattern + '|' + r"""^-?\s*pluralize(\s+\w+)?\s*-?$""") try: super(Command, self).handle(*args, **options) diff --git a/askbot/media/bootstrap/css/bootstrap.css b/askbot/media/bootstrap/css/bootstrap.css index e6190005..396e05c6 100644 --- a/askbot/media/bootstrap/css/bootstrap.css +++ b/askbot/media/bootstrap/css/bootstrap.css @@ -935,7 +935,6 @@ input[type="file"] { line-height: 18px \9; } select { - width: 220px; background-color: #ffffff; } select[multiple], @@ -968,6 +967,7 @@ textarea { -o-transition: border linear 0.2s, box-shadow linear 0.2s; transition: border linear 0.2s, box-shadow linear 0.2s; } +/* input:focus, textarea:focus { border-color: rgba(82, 168, 236, 0.8); @@ -975,10 +975,9 @@ textarea:focus { -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - + outline: thin dotted \9; ***** for IE6-9 * } +*/ input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, diff --git a/askbot/media/js/group_messaging.js b/askbot/media/js/group_messaging.js index 30519f1f..add50425 100644 --- a/askbot/media/js/group_messaging.js +++ b/askbot/media/js/group_messaging.js @@ -309,7 +309,6 @@ NewThreadComposer.prototype.createDom = function() { var usersAc = new AutoCompleter({ url: '/get-users-info/',//askbot['urls']['get_users_info'], - preloadData: false, minChars: 1, useCache: true, matchInside: true, diff --git a/askbot/media/js/live_search.js b/askbot/media/js/live_search.js index 076ec2f9..bb18beda 100644 --- a/askbot/media/js/live_search.js +++ b/askbot/media/js/live_search.js @@ -284,6 +284,10 @@ InputToolTip.prototype.dim = function() { this._element.addClass('dimmed'); }; +InputToolTip.prototype.setPromptText = function(text) { + this._promptText = text; +}; + InputToolTip.prototype.setClickHandler = function(handler) { this._clickHandler = handler; }; @@ -291,10 +295,13 @@ InputToolTip.prototype.setClickHandler = function(handler) { InputToolTip.prototype.createDom = function() { var element = this.makeElement('div'); this._element = element; - - element.html(gettext('поиÑк по вопроÑам')); element.addClass('input-tool-tip'); + element.html(this._promptText); + this.decorate(element); +}; +InputToolTip.prototype.decorate = function(element) { + this._element = element; var handler = this._clickHandler; var me = this; element.click(function() { diff --git a/askbot/media/js/post.js b/askbot/media/js/post.js index 94e230a2..1fb1203f 100644 --- a/askbot/media/js/post.js +++ b/askbot/media/js/post.js @@ -1006,7 +1006,7 @@ var Vote = function(){ questionId = qId; questionSlug = qSlug; questionAuthorId = questionAuthor; - currentUserId = userId; + currentUserId = '' + userId;//convert to string bindEvents(); }, @@ -1243,7 +1243,6 @@ var questionRetagger = function(){ //populate input var tagAc = new AutoCompleter({ url: askbot['urls']['get_tag_list'], - preloadData: true, minChars: 1, useCache: true, matchInside: true, @@ -1544,9 +1543,9 @@ EditCommentForm.prototype.createDom = function(){ div.append(this._textarea); this._text_counter = $('<span></span>').attr('class', 'counter'); div.append(this._text_counter); - this._submit_btn = $('<button class="submit small"></button>'); + this._submit_btn = $('<button class="submit"></button>'); div.append(this._submit_btn); - this._cancel_btn = $('<button class="submit small"></button>'); + this._cancel_btn = $('<button class="submit"></button>'); this._cancel_btn.html(gettext('cancel')); div.append(this._cancel_btn); @@ -1840,7 +1839,7 @@ Comment.prototype.getElement = function(){ Comment.superClass_.getElement.call(this); if (this.isBlank() && this.hasContent()){ this.setContent(); - if (enableMathJax === true){ + if (askbot['settings']['mathjaxEnabled'] === true){ MathJax.Hub.Queue(['Typeset', MathJax.Hub]); } } @@ -2107,7 +2106,7 @@ var socialSharing = function(){ URL = window.location.href; var urlBits = URL.split('/'); URL = urlBits.slice(0, -2).join('/') + '/'; - TEXT = escape($('h1 > a').html()); + TEXT = encodeURIComponent($('h1 > a').html()); var hashtag = encodeURIComponent( askbot['settings']['sharingSuffixText'] ); @@ -3033,7 +3032,6 @@ TagEditor.prototype.decorate = function(element) { me.clearNewTagInput(); } }, - preloadData: true, minChars: 1, useCache: true, matchInside: true, @@ -4034,7 +4032,6 @@ $(document).ready(function() { var fakeUserAc = new AutoCompleter({ url: '/get-users-info/',//askbot['urls']['get_users_info'], - preloadData: true, promptText: gettext('User name:'), minChars: 1, useCache: true, @@ -4056,7 +4053,6 @@ $(document).ready(function() { if (groupsInput.length === 1) { var groupsAc = new AutoCompleter({ url: askbot['urls']['getGroupsList'], - preloadData: true, promptText: gettext('Group name:'), minChars: 1, useCache: false, @@ -4070,7 +4066,6 @@ $(document).ready(function() { if (usersInput.length === 1) { var usersAc = new AutoCompleter({ url: '/get-users-info/', - preloadData: true, promptText: gettext('User name:'), minChars: 1, useCache: false, diff --git a/askbot/media/js/tag_selector.js b/askbot/media/js/tag_selector.js index c1ccd691..dfc8a29a 100644 --- a/askbot/media/js/tag_selector.js +++ b/askbot/media/js/tag_selector.js @@ -372,7 +372,6 @@ function pickedTags(){ setupTagFilterControl('email'); var ac = new AutoCompleter({ url: askbot['urls']['get_tag_list'], - preloadData: true, minChars: 1, useCache: true, matchInside: true, diff --git a/askbot/media/js/user.js b/askbot/media/js/user.js index 2fd1195b..251ee004 100644 --- a/askbot/media/js/user.js +++ b/askbot/media/js/user.js @@ -950,7 +950,6 @@ GroupAdderWidget.prototype.decorate = function(element){ var groupsAc = new AutoCompleter({ url: askbot['urls']['getGroupsList'], - preloadData: true, minChars: 1, useCache: false, matchInside: false, diff --git a/askbot/media/js/utils.js b/askbot/media/js/utils.js index 304caa8b..516c1ebf 100644 --- a/askbot/media/js/utils.js +++ b/askbot/media/js/utils.js @@ -1,4 +1,3 @@ -//var $, scriptUrl, askbotSkin /** * attention - this function needs to be retired * as it cannot accurately give url to the media file @@ -65,6 +64,18 @@ var joinAsPhrase = function(values) { } }; +/** + * @return {boolean} + */ +var inArray = function(item, itemsList) { + for (var i = 0; i < itemsList.length; i++) { + if (item === itemsList[i]) { + return true; + } + } + return false; +}; + var showMessage = function(element, msg, where) { var div = $('<div class="vote-notification"><h3>' + msg + '</h3>(' + gettext('click to close') + ')</div>'); @@ -2214,6 +2225,8 @@ var AutoCompleter = function(options) { */ this.finishOnBlur_ = true; + this._isRunning = false; + this.options.minChars = parseInt(this.options.minChars, 10); if (isNaN(this.options.minChars) || this.options.minChars < 1) { this.options.minChars = 2; @@ -2442,7 +2455,13 @@ AutoCompleter.prototype.activate = function() { }; AutoCompleter.prototype.activateNow = function() { + if (this._isRunning) { + return; + } var value = this.getValue(); + if (value.length === 0) { + this.finish(); + } if (value !== this.lastProcessedValue_ && value !== this.lastSelectedValue_) { if (value.length >= this.options.minChars) { this.active_ = true; @@ -2452,6 +2471,10 @@ AutoCompleter.prototype.activateNow = function() { } }; +AutoCompleter.prototype.setIsRunning = function(isRunning) { + this._isRunning = isRunning; +}; + AutoCompleter.prototype.fetchData = function(value) { var self = this; this.fetchRemoteData(value, function(remoteData) { @@ -2482,11 +2505,21 @@ AutoCompleter.prototype.fetchRemoteData = function(filter, callback) { }; $.ajax({ url: this.makeUrl(filter), - success: ajaxCallback, + success: function(data) { + ajaxCallback(data); + self.setIsRunning(false); + //if query changed - rerun the search immediately + var newQuery = self.getValue(); + if (newQuery && newQuery !== filter) { + self.activateNow(); + } + }, error: function() { ajaxCallback(false); + self.setIsRunning(false); } }); + self.setIsRunning(true); } }; @@ -2792,7 +2825,7 @@ AutoCompleter.prototype.selectItem = function($li) { * @param {string} symbol - a single char string */ AutoCompleter.prototype.isContentChar = function(symbol){ - if (symbol.match(this.options['stopCharRegex'])){ + if (this.options['stopCharRegex'] && symbol.match(this.options['stopCharRegex'])){ return false; } else if (symbol === this.options['multipleSeparator']){ return false; @@ -2810,6 +2843,9 @@ AutoCompleter.prototype.isContentChar = function(symbol){ * autocompletable word */ AutoCompleter.prototype.getValue = function(){ + if (this._element === undefined) { + return ''; + } var sel = this._element.getSelection(); var text = this._element.val(); var pos = sel.start;//estimated start diff --git a/askbot/media/js/wmd/showdown.js b/askbot/media/js/wmd/showdown.js index 257b8bd1..25872e48 100644 --- a/askbot/media/js/wmd/showdown.js +++ b/askbot/media/js/wmd/showdown.js @@ -155,7 +155,7 @@ var makeHtmlBase = function(text) { } this.makeHtml = function(text){ - if (enableMathJax === false){ + if (askbot['settings']['mathjaxEnabled'] === false){ return makeHtmlBase(text); } else { diff --git a/askbot/media/js/wmd/wmd.js b/askbot/media/js/wmd/wmd.js index 5aeacd98..ad56aee3 100644 --- a/askbot/media/js/wmd/wmd.js +++ b/askbot/media/js/wmd/wmd.js @@ -122,7 +122,7 @@ Attacklab.wmdBase = function(){ // Adds a listener callback to a DOM element which is fired on a specified // event. util.addEvent = function(elem, event, listener){ - if (elem.attachEvent) { + if (elem && elem.attachEvent) { // IE only. The "on" is mandatory. elem.attachEvent("on" + event, listener); } @@ -2472,21 +2472,15 @@ Attacklab.wmd_env = {}; Attacklab.account_options = {}; Attacklab.wmd_defaults = {version:1, output:"Markdown", lineLength:40, delayLoad:false}; -if(!Attacklab.wmd) -{ - Attacklab.wmd = function() - { - Attacklab.loadEnv = function() - { - var mergeEnv = function(env) - { - if(!env) - { +if (askbot['settings']['editorType'] == 'markdown' && !Attacklab.wmd) { + Attacklab.wmd = function() { + Attacklab.loadEnv = function() { + var mergeEnv = function(env) { + if(!env) { return; } - for(var key in env) - { + for(var key in env) { Attacklab.wmd_env[key] = env[key]; } }; @@ -2507,4 +2501,3 @@ if(!Attacklab.wmd) Attacklab.wmdBase(); Attacklab.Util.startEditor(); }; - diff --git a/askbot/media/style/lib_style.less b/askbot/media/style/lib_style.less index 05ab38f5..5e454173 100644 --- a/askbot/media/style/lib_style.less +++ b/askbot/media/style/lib_style.less @@ -17,29 +17,6 @@ @main-font:'Open Sans Condensed', Arial, sans-serif; @secondary-font:Arial; -/* Buttons */ - -.button-style(@h:20px, @f:14px){ - height:@h; - font-size:@f; - text-align:center; - text-decoration:none; - cursor:pointer; - color:@button-label; - font-family:@main-font; - .text-shadow(0px,1px,0px,#c6d9dd); - border-top:#eaf2f3 1px solid; - .linear-gradient(#d1e2e5,#a9c2c7); - .rounded-corners(4px); - .box-shadow(1px, 1px, 2px, #636363) -} - -.button-style-hover{ - .linear-gradient(#cde5e9,#94b3ba); - text-decoration:none; - .text-shadow(0px, 1px, 0px, #c6d9dd); -} - /* General styles for gradients */ .linear-gradient(@start:#eee,@end:#fff,@stop:25%){ diff --git a/askbot/media/style/style.css b/askbot/media/style/style.css index a53ebf37..3b52c293 100644 --- a/askbot/media/style/style.css +++ b/askbot/media/style/style.css @@ -3,21 +3,6 @@ /* Variables for Colors*/ /* Variables for fonts*/ /* "Trebuchet MS", sans-serif;*/ -/* Buttons */ -.button-style-hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} /* General styles for gradients */ /* Receive exactly positions for background Sprite */ /* CSS3 Elements */ @@ -67,6 +52,9 @@ select { font-family: Trebuchet MS, "segoe ui", Helvetica, Tahoma, Verdana, MingLiu, PMingLiu, Arial, sans-serif; margin-left: 0px; } +select { + width: 100%; +} input[type="text"].prompt, input[type="password"].prompt, input.tipped-input.blank { @@ -214,7 +202,7 @@ body.user-messages { } .wait-icon-box { text-align: center; - margin-bottom: 8px; + margin: 5px 0 8px; } #closeNotify { position: absolute; @@ -461,6 +449,20 @@ body.user-messages { height: 41px; z-index: 10000; position: relative; + /* the guts are absolute-positioned */ + +} +#searchBar input.searchInput, +#searchBar div.input-tool-tip, +#searchBar input[type="submit"].searchBtn, +#searchBar input[type="button"].cancelSearchBtn { + position: absolute; + z-index: 100; +} +#searchBar input.searchInput { + z-index: 99; + /* just below the buttons and the hint */ + } #searchBar input.searchInput { font-size: 22px; @@ -473,18 +475,36 @@ body.user-messages { font-family: Arial; width: 100%; margin: 8px 0 6px 0; - padding: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; + padding: 0 80px 0 8px; + top: 0; + left: 0; + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; } #searchBar div.input-tool-tip { - margin-top: -40px; - padding-top: 10px; - height: 30px; - line-height: 20px; + padding: 0 0 0 10px; + height: 41px; + line-height: 41px; font-size: 20px; font-style: italic; + bottom: 0; + left: 0; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + width: 100% a; +} +#searchBar input[type="submit"].searchBtn { + right: 0; + top: 0; +} +#searchBar input[type="button"].cancelSearchBtn { + right: 48px; + top: 0; } .search-drop-menu { box-sizing: border-box; @@ -493,7 +513,6 @@ body.user-messages { border-top: none; margin: 0; position: relative; - top: 0; z-index: 10000; } .search-drop-menu ul { @@ -502,6 +521,7 @@ body.user-messages { padding: 0 0 10px 0; margin: 0; position: relative; + width: 100%; } .search-drop-menu ul li { padding: 5px 10px; @@ -521,10 +541,10 @@ body.user-messages { } .search-drop-menu .footer { text-align: center; - padding-bottom: 10px; + padding: 9px 0 10px 0; } .search-drop-menu.empty ul { - padding: 5px; + padding: 1px; margin: 0; } .input-tool-tip { @@ -541,14 +561,28 @@ input[type="submit"].searchBtn { border: #FFF 1px solid; line-height: 22px; text-align: center; - float: right; - margin: 7px 28px 0 0; + margin: 1px 0 0 0; width: 48px; - background: -98px -36px url(../images/sprites.png) no-repeat; + background: -98px -37px url(../images/sprites.png) no-repeat; + border-radius: 0; + -ms-border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -khtml-border-radius: 0; + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; cursor: pointer; - position: relative; z-index: 10001; } +.groups-page input[type="submit"].searchBtn, +.badges-pages input[type="submit"].searchBtn, +.user-profile-page input[type="submit"].searchBtn, +.meta input[type="submit"].searchBtn, +.openid-signin input[type="submit"].searchBtn, +.users-page input[type="submit"].searchBtn { + margin-top: 1px; +} .ask-page input[type="submit"].searchBtn { display: none; } @@ -564,45 +598,55 @@ input[type="submit"].searchBtn { .ask-page .search-drop-menu.empty ul { padding: 0; } -.searchBtn:hover { - background: -146px -36px url(../images/sprites.png) no-repeat; -} -.cancelSearchBtn { - font-size: 30px; - color: #ce8888; - background: #fff; - height: 41px; - line-height: 42px; +input[type="submit"].searchBtn:hover { + background-image: none; + background-image: none; + background-image: none; + background-image: none; + background-image: none; + background-image: none; + background: -146px -37px url(../images/sprites.png) no-repeat; +} +input[type="button"].cancelSearchBtn { + font-size: 30px !important; + color: #aaa; + background: #fff !important; + height: 37px !important; + line-height: 37px; border: 0px; - border-left: #deded0 1px solid; + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; + border-radius: 0; + -ms-border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -khtml-border-radius: 0; text-align: center; - width: 35px; + width: 35px !important; cursor: pointer; - float: right; - margin-top: 7px; - position: relative; z-index: 10001; } .cancelSearchBtn:hover { color: #d84040; } -#askButton { - /* check blocks/secondary_header.html and widgets/ask_button.html*/ - - line-height: 44px; - margin-top: 6px; - float: right; - text-transform: uppercase; - height: 42px; - font-size: 20px; - text-align: center; - text-decoration: none; +button, +input[type="submit"], +input[type="button"], +input[type="reset"], +.button { cursor: pointer; color: #4a757f; + height: 27px; font-family: 'Open Sans Condensed', Arial, sans-serif; + font-size: 14px; + font-weight: bold; + text-align: center; + text-decoration: none; text-shadow: 0px 1px 0px #c6d9dd; -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; + border: 0 !important; border-top: #eaf2f3 1px solid; background-color: #d1e2e5; background-repeat: no-repeat; @@ -620,11 +664,20 @@ input[type="submit"].searchBtn { -webkit-box-shadow: 1px 1px 2px #636363; -moz-box-shadow: 1px 1px 2px #636363; box-shadow: 1px 1px 2px #636363; - width: 200px; - /* to match width of sidebar */ - } -#askButton:hover { +button.large, +input[type="submit"].large, +input[type="button"].large, +input[type="reset"].large, +.button.large { + font-size: 20px; + height: 35px; + line-height: 35px; + padding: 0 10px; +} +button:hover, +input[type="submit"]:hover, +.button:hover { background-color: #cde5e9; background-repeat: no-repeat; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); @@ -638,6 +691,31 @@ input[type="submit"].searchBtn { -moz-text-shadow: 0px 1px 0px #c6d9dd; -webkit-text-shadow: 0px 1px 0px #c6d9dd; } +input[type="submit"].link { + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; + text-shadow: 0 0 0 #929292; + -moz-text-shadow: 0 0 0 #929292; + -webkit-text-shadow: 0 0 0 #929292; + font-weight: normal; +} +input[type="submit"].link:hover { + text-decoration: underline; +} +#askButton { + /* check blocks/secondary_header.html and widgets/ask_button.html*/ + + float: right; + font-size: 20px; + height: 42px; + line-height: 44px; + margin-top: 6px; + text-transform: uppercase; + width: 200px; + /* to match width of sidebar */ + +} /* Put the secondary navigation together: 1) raise the search bar by 55px @@ -658,14 +736,47 @@ input[type="submit"].searchBtn { body.anon.ask-page .search-drop-menu { margin: 0; } -body.anon #searchBar, -body.anon .search-drop-menu { - margin-left: 227px; - /* we don't have the "followed" scope */ - +#scopeNav { + height: 41px; + float: left; + width: 280px; +} +.scopes-True-True-False #searchBar, +.scopes-True-True-False .search-drop-menu { + margin-left: 228px; } -#searchBar.cancelable { - padding-right: 82px; +.scopes-True-True-False #scopeNav { + width: 180px; +} +.scopes-True-False-True #searchBar, +.scopes-True-False-True .search-drop-menu { + margin-left: 203px; +} +.scopes-True-False-True #scopeNav { + width: 150px; +} +.scopes-False-True-True #searchBar, +.scopes-False-True-True .search-drop-menu { + margin-left: 286px; +} +.scopes-False-True-True #scopeNav { + width: 238px; +} +.scopes-True-False-False #searchBar, +.scopes-False-True-False #searchBar, +.scopes-False-False-True #searchBar, +.scopes-False-False-False #searchBar, +.scopes-True-False-False .search-drop-menu, +.scopes-False-True-False .search-drop-menu, +.scopes-False-False-True .search-drop-menu, +.scopes-False-False-False .search-drop-menu { + margin-left: 52px; +} +.scopes-True-False-False #scopeNav, +.scopes-False-True-False #scopeNav, +.scopes-False-False-True #scopeNav, +.scopes-False-False-False #scopeNav { + width: 0; } /* ----- Content layout, check two_column_body.html or one_column_body.html ----- */ #ContentLeft { @@ -686,8 +797,9 @@ body.anon .search-drop-menu { /* ----- Sidebar Widgets Box, check main_page/sidebar.html or question/sidebar.html ----- */ .box { background: #fff; - padding: 4px 0px 10px 0px; + padding: 4px 0px 10px 1px; width: 200px; + overflow: hidden; /* widgets for question template */ /* notify by email box */ @@ -785,56 +897,7 @@ body.anon .search-drop-menu { .box .inputs #subscribedTagAdd, .box .inputs #ab-tag-search-add { border: 0; - font-weight: bold; margin-top: -2px; - height: 27px; - font-size: 14px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; -} -.box .inputs #interestingTagAdd:hover, -.box .inputs #ignoredTagAdd:hover, -.box .inputs #ab-tag-search-add:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; } .box .inputs #ab-tag-search-add { width: 47px; @@ -844,60 +907,17 @@ body.anon .search-drop-menu { } .box a.followed, .box a.follow { + height: 34px; + font-size: 21px; line-height: 34px; border: 0; font-weight: normal; margin-top: 3px; display: block; - height: 34px; - font-size: 21px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; margin: 0 auto; padding: 0; width: 130px; } -.box a.followed:hover, -.box a.follow:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} .box a.followed div.unfollow { display: none; } @@ -1341,7 +1361,7 @@ ul.tags.marked-tags, ul#related-tags { list-style: none; margin: 0; - padding: 0; + padding: 0 0 0 1px; line-height: 170%; display: block; } @@ -1360,9 +1380,7 @@ ul.tags.marked-tags li, margin-bottom: 5px; } #tagSelector div.inputs { - clear: both; - float: none; - margin-bottom: 10px; + margin: 6px 0 12px 0; } .tags-page ul.tags li, ul#ab-user-tags li { @@ -1670,40 +1688,7 @@ ul#related-tags li { .add-groups, .add-users { border: 0; - font-weight: bold; margin-top: -2px; - height: 27px; - font-size: 14px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; } .share-input-col { width: 160px; @@ -1716,20 +1701,6 @@ ul#related-tags li { padding: 0 10px; height: 25px; } -.add-groups:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} #id_user, #id_user_author { border: #cce6ec 3px solid; @@ -1749,40 +1720,7 @@ ul#related-tags li { .add-groups, .add-users { border: 0; - font-weight: bold; margin-top: -2px; - height: 27px; - font-size: 14px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; } .add-everyone-group { text-align: center; @@ -1790,20 +1728,6 @@ ul#related-tags li { display: block; padding: 0 10px; } -.add-groups:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} #id_user, #id_user_author { border: #cce6ec 3px solid; @@ -1830,55 +1754,11 @@ ul#related-tags li { .edit-question-page input.submit { float: left; font-weight: normal; + height: 35px; + font-size: 20px; margin-top: 3px; - height: 34px; - font-size: 21px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; margin-right: 7px; } -#fmanswer input.submit:hover, -.ask-page input.submit:hover, -.edit-question-page input.submit:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} .wmd-container { border: #cce6ec 3px solid; } @@ -1886,7 +1766,7 @@ ul#related-tags li { border: none; } .users-page .wmd-container { - width: 200px; + width: auto; } .ask-page .wmd-container, .question-page .wmd-container, @@ -1923,7 +1803,7 @@ ul#related-tags li { border: 0; } .users-page #editor { - width: 192px; + width: 187px; } #id_title { width: 100%; @@ -2190,7 +2070,8 @@ ul#related-tags li { margin-top: 10px; margin-bottom: 8px; } -.question-page .post-controls a { +.question-page .post-controls a, +.question-page .post-controls span.dropdown-toggle { color: #777; padding: 0px 7px 3px 18px; cursor: pointer; @@ -2199,19 +2080,58 @@ ul#related-tags li { font-family: Arial; text-decoration: none; height: 18px; - display: block; - float: right; line-height: 18px; margin-top: -2px; margin-left: 4px; } -.question-page .post-controls a:hover { +.question-page .post-controls a:hover, +.question-page .post-controls span.dropdown-toggle:hover { background-color: #f5f0c9; +} +.question-page .post-controls span.dropdown-toggle { + background: url(../images/sprites.png) no-repeat -7px -242px; border-radius: 3px; -ms-border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; -khtml-border-radius: 3px; + position: relative; +} +.question-page .post-controls span.dropdown-toggle:hover { + padding-right: 0; + background: url(../images/sprites.png) no-repeat -7px -274px; +} +.question-page .post-controls span.dropdown-toggle:hover form { + margin: 0; +} +.question-page .post-controls span.dropdown-toggle:hover input { + display: block !important; + height: 20px !important; + line-height: 20px !important; + margin: 0; + padding: 0 5px; + border-radius: 0; + -ms-border-radius: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + -khtml-border-radius: 0; + width: 100% !important; +} +.question-page .post-controls span.dropdown-toggle:hover .dropdown-menu { + display: block; + padding: 5px 0; + right: -5px !important; + left: auto; +} +.question-page .post-controls span.dropdown-toggle:hover .dropdown-menu li, +.question-page .post-controls span.dropdown-toggle:hover .dropdown-menu li:hover { + display: block !important; + margin: 0; + padding: 0; + width: 100% !important; +} +.question-page .post-controls span.dropdown-toggle:hover .dropdown-menu li:hover { + background-color: #f5f0c9; } .question-page .post-controls .sep { color: #ccc; @@ -2221,12 +2141,12 @@ ul#related-tags li { } .question-page .post-controls .question-delete, .question-page .answer-controls .question-delete { - background: url(../images/delete.png) no-repeat left 2px; + background: url(../images/delete.png) no-repeat left -1px; padding-left: 11px; } .question-page .post-controls .question-flag, .question-page .answer-controls .question-flag { - background: url(../images/flag.png) no-repeat center left; + background: url(../images/flag.png) no-repeat 2px 0; } .question-page .post-controls .answer-publish, .question-page .answer-controls .answer-publish { @@ -2238,7 +2158,7 @@ ul#related-tags li { } .question-page .post-controls .question-edit, .question-page .answer-controls .question-edit { - background: url(../images/edit2.png) no-repeat 2px center; + background: url(../images/edit2.png) no-repeat 3px 1px; } .question-page .post-controls .question-retag, .question-page .answer-controls .question-retag { @@ -2250,7 +2170,7 @@ ul#related-tags li { } .question-page .post-controls .permant-link, .question-page .answer-controls .permant-link { - background: url(../images/link.png) no-repeat center left; + background: url(../images/link.png) no-repeat 2px 1px; } .question-page .post-controls .answer-convert, .question-page .answer-controls .answer-convert { @@ -2351,14 +2271,21 @@ ul#related-tags li { margin: 3px 0 20px 5px; } .question-page .comments .controls a { + border: none; color: #988e4c; - padding: 0 3px 2px 22px; + padding: 0 3px 5px 22px; font-family: Arial; font-size: 13px; + font-weight: normal; background: url(../images/comment.png) no-repeat center left; + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; + text-shadow: 0 0 0 #929292; + -moz-text-shadow: 0 0 0 #929292; + -webkit-text-shadow: 0 0 0 #929292; } .question-page .comments .controls a:hover { - background-color: #f5f0c9; text-decoration: none; } .question-page .comments .button { @@ -2373,24 +2300,22 @@ ul#related-tags li { padding: 0; } .question-page .comments form.post-comments { - margin: 3px 26px 0 42px; -} -.question-page .comments form.post-comments textarea { - font-size: 13px; - line-height: 1.3; + padding: 6px 6px 7px 42px; + border-bottom: 1px solid #edeeeb; + margin-bottom: 0; } .question-page .comments textarea { - height: 42px; - width: 100%; - margin: 7px 0 5px 1px; + box-sizing: border-box; + border: #cce6ec 3px solid; font-family: Arial; + font-size: 13px; + height: 54px; + line-height: 1.3; + margin: -1px 0 7px 1px; outline: none; overflow: auto; - font-size: 12px; - line-height: 140%; - padding-left: 2px; - padding-top: 3px; - border: #cce6ec 3px solid; + padding: 0px 19px 2px 3px; + width: 100%; } .question-page .comments input { margin-left: 10px; @@ -2398,52 +2323,11 @@ ul#related-tags li { vertical-align: top; width: 100px; } -.question-page .comments button { - line-height: 25px; - margin-bottom: 5px; - height: 27px; - font-size: 12px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - font-family: Arial; - font-weight: bold; -} -.question-page .comments button:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; +.question-page .comments button.submit { + height: 26px; + line-height: 26px; + padding: 0 8px; + margin-right: 6px; } .question-page .comments .counter { display: inline-block; @@ -2459,18 +2343,11 @@ ul#related-tags li { border-bottom: 1px solid #edeeeb; clear: both; margin: 0; - margin-top: 8px; padding-bottom: 4px; overflow: auto; font-family: Arial; font-size: 11px; min-height: 25px; - background: #ffffff url(../images/comment-background.png) bottom repeat-x; - border-radius: 5px; - -ms-border-radius: 5px; - -moz-border-radius: 5px; - -webkit-border-radius: 5px; - -khtml-border-radius: 5px; } .question-page .comments div.comment:hover { background-color: #efefef; @@ -2527,12 +2404,19 @@ ul#related-tags li { padding: 0px; color: #1B79BD; border: none; + height: 13px; width: auto; font-family: Arial; - line-height: 14px; - margin-left: 6px; font-size: 13px; - box-shadow: none; + font-weight: normal; + line-height: 13px; + margin: 0 0 0 8px; + -webkit-box-shadow: 0 0 0 #929292; + -moz-box-shadow: 0 0 0 #929292; + box-shadow: 0 0 0 #929292; + text-shadow: 0 0 0 #929292; + -moz-text-shadow: 0 0 0 #929292; + -webkit-text-shadow: 0 0 0 #929292; } .question-page .comments .comment-body .convert-comment input:hover { text-decoration: underline; @@ -2814,52 +2698,6 @@ ul#related-tags li { .user-profile-page input.submit { font-weight: normal; margin: 5px 0px; - height: 26px; - font-size: 15px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - font-family: Arial; -} -.openid-signin input.submit:hover, -.meta input.submit:hover, -.users-page input.submit:hover, -.user-profile-edit-page input.submit:hover, -.user-profile-page input.submit:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; } .openid-signin .cancel, .meta .cancel, @@ -2884,6 +2722,15 @@ ul#related-tags li { float: left; width: 960px; } +.user-profile-page.inbox-group-join-requests form { + margin-bottom: 0; +} +.user-profile-page.inbox-group-join-requests table { + margin-bottom: 13px; +} +.user-profile-page.inbox-group-join-requests td { + padding-right: 10px; +} .inbox-flags.user-profile-page .re { width: 810px; } @@ -2925,59 +2772,6 @@ ul#related-tags li { border: #cce6ec 3px solid; width: 200px; } -#email-input-fs .submit-b, -#local_login_buttons .submit-b, -#password-fs .submit-b, -#openid-fs .submit-b { - height: 24px; - font-size: 15px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; - font-family: Arial; - font-weight: bold; - padding-right: 10px; - border: 0; -} -#email-input-fs .submit-b:hover, -#local_login_buttons .submit-b:hover, -#password-fs .submit-b:hover, -#openid-fs .submit-b:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; -} .openid-input { background: url(../images/openid.gif) no-repeat; padding-left: 15px; @@ -3086,64 +2880,6 @@ a:hover.medal { margin-top: 10px; margin-bottom: 10px; } -.user-profile-page .inputs input[type='submit'] { - height: 26px; - font-size: 15px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; -} -.user-profile-page input[type='submit'].select-language { - height: 26px; - font-size: 15px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; -} .user-profile-page select { margin-bottom: 12px; } @@ -3164,54 +2900,17 @@ a:hover.medal { .user-about p { font-size: 13px; } +.follow-toggle { + height: auto; +} .follow-toggle, .submit { - border: 0 !important; font-weight: bold; line-height: 26px; margin-top: -2px; - height: 26px; - font-size: 14px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; } .follow-toggle:hover, .submit:hover { - background-color: #cde5e9; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#cde5e9), color-stop(25%, #cde5e9), to(#94b3ba)); - background-image: -webkit-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -moz-linear-gradient(top, #cde5e9, #cde5e9 25%, #94b3ba); - background-image: -ms-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: -o-linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - background-image: linear-gradient(#cde5e9, #cde5e9 25%, #94b3ba); - text-decoration: none; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; text-decoration: none !important; } .follow-toggle .follow { @@ -3405,6 +3104,14 @@ ins p, ins { background-color: #E6F0A2; } +body.question-page ins, +body.main-page ins { + /* a hack for google adwords + * todo: make rule above more specific + * and remove this one */ + + background: transparent; +} /* ----- Red Popup notification ----- */ .vote-notification { z-index: 1; @@ -4530,35 +4237,6 @@ textarea.tipped-input { border-spacing: 10px; border-collapse: separate; } -.tag-subscriptions button { - height: 27px; - font-size: 14px; - text-align: center; - text-decoration: none; - cursor: pointer; - color: #4a757f; - font-family: 'Open Sans Condensed', Arial, sans-serif; - text-shadow: 0px 1px 0px #c6d9dd; - -moz-text-shadow: 0px 1px 0px #c6d9dd; - -webkit-text-shadow: 0px 1px 0px #c6d9dd; - border-top: #eaf2f3 1px solid; - background-color: #d1e2e5; - background-repeat: no-repeat; - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#d1e2e5), color-stop(25%, #d1e2e5), to(#a9c2c7)); - background-image: -webkit-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -moz-linear-gradient(top, #d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -ms-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: -o-linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - background-image: linear-gradient(#d1e2e5, #d1e2e5 25%, #a9c2c7); - border-radius: 4px; - -ms-border-radius: 4px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - -khtml-border-radius: 4px; - -webkit-box-shadow: 1px 1px 2px #636363; - -moz-box-shadow: 1px 1px 2px #636363; - box-shadow: 1px 1px 2px #636363; -} .tag-subscriptions form { display: inline-block; margin-bottom: 0; diff --git a/askbot/media/style/style.less b/askbot/media/style/style.less index 0ce1b849..a4c3a6b2 100644 --- a/askbot/media/style/style.less +++ b/askbot/media/style/style.less @@ -38,6 +38,9 @@ input, select { font-family: Trebuchet MS, "segoe ui", Helvetica, Tahoma, Verdana, MingLiu, PMingLiu, Arial, sans-serif; margin-left:0px; } +select { + width: 100%; +} input[type="text"].prompt, input[type="password"].prompt, @@ -208,7 +211,7 @@ body.user-messages { .wait-icon-box { text-align: center; - margin-bottom: 8px; + margin: 5px 0 8px; } #closeNotify { @@ -488,6 +491,19 @@ body.user-messages { z-index: 10000; position: relative; + /* the guts are absolute-positioned */ + input.searchInput, + div.input-tool-tip, + input[type="submit"].searchBtn, + input[type="button"].cancelSearchBtn { + position: absolute; + z-index: 100; + } + + input.searchInput { + z-index: 99;/* just below the buttons and the hint */ + } + input.searchInput { font-size: 22px; height: 26px; @@ -499,19 +515,36 @@ body.user-messages { font-family:@body-font; width: 100%; margin: 8px 0 6px 0; - padding: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; + padding: 0 80px 0 8px; + top: 0; + left: 0; + .box-shadow(0, 0, 0); + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; } div.input-tool-tip { - margin-top: -40px; - padding-top: 10px; - height: 30px; - line-height: 20px; + padding: 0 0 0 10px; + height: 41px; + line-height: 41px; font-size: 20px; font-style: italic; + bottom: 0; + left: 0; + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + width: 100%a + } + + input[type="submit"].searchBtn { + right: 0; + top: 0; + } + input[type="button"].cancelSearchBtn { + right: 48px; + top: 0; } } @@ -522,7 +555,6 @@ body.user-messages { border-top: none; margin: 0; position: relative; - top: 0; z-index: 10000; ul { @@ -531,6 +563,7 @@ body.user-messages { padding: 0 0 10px 0; margin: 0; position: relative; + width: 100%; li { padding: 5px 10px; position: relative; @@ -552,13 +585,13 @@ body.user-messages { .footer { text-align: center; - padding-bottom: 10px; + padding: 9px 0 10px 0; } } .search-drop-menu.empty { ul { - padding: 5px; + padding: 1px; margin: 0; } } @@ -578,14 +611,26 @@ input[type="submit"].searchBtn { border:#FFF 1px solid; line-height: 22px; text-align: center; - float:right; - margin: 7px 28px 0 0; + margin: 1px 0 0 0; width: 48px; - .sprites(-98px,-36px); + .sprites(-98px,-37px); + .rounded-corners(0); + .box-shadow(0, 0, 0); cursor:pointer; - position: relative; z-index: 10001; } + +.groups-page, /* todo: clean up - should not need this */ +.badges-pages, +.user-profile-page, +.meta, +.openid-signin, +.users-page { + input[type="submit"].searchBtn { + margin-top: 1px; + } +} + .ask-page { input[type="submit"].searchBtn { display: none; @@ -604,24 +649,28 @@ input[type="submit"].searchBtn { } } -.searchBtn:hover { - .sprites(-98px-48,-36px); +input[type="submit"].searchBtn:hover { + background-image: none; + background-image: none; + background-image: none; + background-image: none; + background-image: none; + background-image: none; + .sprites(-98px-48,-37px); } -.cancelSearchBtn { - font-size: 30px; - color: #ce8888; - background:#fff; - height: 41px; - line-height: 42px; - border:0px; - border-left:#deded0 1px solid; +input[type="button"].cancelSearchBtn { + font-size: 30px !important; + color: #aaa; + background: #fff !important; + height: 37px !important; + line-height: 37px; + border: 0px; + .box-shadow(0, 0, 0); + .rounded-corners(0); text-align: center; - width: 35px; + width: 35px !important; cursor:pointer; - float: right; - margin-top: 7px; - position: relative; z-index: 10001; } @@ -629,17 +678,63 @@ input[type="submit"].searchBtn { color: #d84040; } -#askButton{ /* check blocks/secondary_header.html and widgets/ask_button.html*/ - line-height:44px; - margin-top:6px; - float:right; - text-transform:uppercase; - .button-style(42px, 20px); - width: 200px;/* to match width of sidebar */ +button, +input[type="submit"], +input[type="button"], +input[type="reset"], +.button { + cursor: pointer; + color: @button-label; + height: 27px; + font-family: @main-font; + font-size: 14px; + font-weight: bold; + text-align: center; + text-decoration: none; + .text-shadow(0px,1px,0px,#c6d9dd); + border: 0 !important; + border-top: #eaf2f3 1px solid; + .linear-gradient(#d1e2e5,#a9c2c7); + .rounded-corners(4px); + .box-shadow(1px, 1px, 2px, #636363) +} +button.large, +input[type="submit"].large, +input[type="button"].large, +input[type="reset"].large, +.button.large { + font-size: 20px; + height: 35px; + line-height: 35px; + padding: 0 10px; +} + +button:hover, +input[type="submit"]:hover, +.button:hover { + .linear-gradient(#cde5e9,#94b3ba); + text-decoration:none; + .text-shadow(0px, 1px, 0px, #c6d9dd); } -#askButton:hover{ - .button-style-hover; +input[type="submit"].link { + .box-shadow(0, 0, 0); + .text-shadow(0, 0, 0); + font-weight: normal; +} + +input[type="submit"].link:hover { + text-decoration: underline; +} + +#askButton { /* check blocks/secondary_header.html and widgets/ask_button.html*/ + float:right; + font-size: 20px; + height: 42px; + line-height: 44px; + margin-top: 6px; + text-transform: uppercase; + width: 200px;/* to match width of sidebar */ } /* @@ -662,16 +757,50 @@ input[type="submit"].searchBtn { body.anon.ask-page .search-drop-menu { margin: 0; } -body.anon { +#scopeNav { + height: 41px; + float: left; + width: 280px; +} +.scopes-True-True-False { #searchBar, .search-drop-menu { - margin-left: 227px;/* we don't have the "followed" scope */ + margin-left: 228px; + } + #scopeNav { + width: 180px; } } -#searchBar.cancelable { - padding-right: 82px; +.scopes-True-False-True { + #searchBar, + .search-drop-menu { + margin-left: 203px; + } + #scopeNav { + width: 150px; + } +} +.scopes-False-True-True { + #searchBar, + .search-drop-menu { + margin-left: 286px; + } + #scopeNav { + width: 238px; + } +} +.scopes-True-False-False, +.scopes-False-True-False, +.scopes-False-False-True, +.scopes-False-False-False { + #searchBar, + .search-drop-menu { + margin-left: 52px; + } + #scopeNav { + width: 0; + } } - /* ----- Content layout, check two_column_body.html or one_column_body.html ----- */ @@ -697,8 +826,9 @@ body.anon { .box { background: #fff; - padding: 4px 0px 10px 0px; + padding: 4px 0px 10px 1px; width:200px; + overflow: hidden; p { margin-bottom: 4px; @@ -799,16 +929,8 @@ body.anon { #subscribedTagAdd, #ab-tag-search-add { border:0; - font-weight:bold; margin-top:-2px; - .button-style(27px, 14px); - .rounded-corners(4px); } - #interestingTagAdd:hover, - #ignoredTagAdd:hover, - #ab-tag-search-add:hover { - .button-style-hover; - } #ab-tag-search-add { width: 47px; } @@ -821,21 +943,17 @@ body.anon { /* widgets for question template */ a.followed, a.follow{ + height: 34px; + font-size: 21px; line-height:34px; border:0; font-weight:normal; margin-top:3px; display:block; - .button-style(34px,21px); .center; width: 130px; } - a.followed:hover, a.follow:hover{ - .button-style-hover; - .text-shadow(0px, 1px, 0px, #c6d9dd); - } - a.followed div.unfollow{ display:none; } @@ -1333,7 +1451,7 @@ ul.tags.marked-tags, ul#related-tags { list-style: none; margin: 0; - padding: 0; + padding: 0 0 0 1px; line-height: 170%; display: block; } @@ -1356,9 +1474,7 @@ ul.tags.marked-tags li, } #tagSelector div.inputs { - clear: both; - float: none; - margin-bottom:10px; + margin: 6px 0 12px 0; } .tags-page ul.tags li, @@ -1659,10 +1775,7 @@ ul#related-tags li { .add-groups, .add-users { border:0; - font-weight:bold; margin-top:-2px; - .button-style(27px, 14px); - .rounded-corners(4px); } .share-input-col { @@ -1678,10 +1791,6 @@ ul#related-tags li { height: 25px; } -.add-groups:hover { - .button-style-hover; -} - #id_user, #id_user_author { border:#cce6ec 3px solid; @@ -1703,10 +1812,7 @@ ul#related-tags li { .add-groups, .add-users { border:0; - font-weight:bold; margin-top:-2px; - .button-style(27px, 14px); - .rounded-corners(4px); } .add-everyone-group { @@ -1716,10 +1822,6 @@ ul#related-tags li { padding: 0 10px; } -.add-groups:hover { - .button-style-hover; -} - #id_user, #id_user_author { border:#cce6ec 3px solid; @@ -1748,18 +1850,12 @@ ul#related-tags li { .edit-question-page input.submit { float: left; font-weight:normal; + height: 35px; + font-size: 20px; margin-top:3px; - .button-style(34px,21px); margin-right:7px; } -#fmanswer input.submit:hover, -.ask-page input.submit:hover, -.edit-question-page input.submit:hover{ - .button-style-hover; - .text-shadow(0px, 1px, 0px, #c6d9dd) -} - .wmd-container { border:#cce6ec 3px solid; textarea { @@ -1767,7 +1863,7 @@ ul#related-tags li { } } .users-page .wmd-container { - width: 200px; + width: auto; } .ask-page, .question-page, @@ -1802,7 +1898,7 @@ ul#related-tags li { } .users-page #editor { - width: 192px; + width: 187px; } #id_title { @@ -2263,22 +2359,25 @@ ul#related-tags li { clear: both; div.controls { - clear: both; + clear: both; float:left; width: 100%; margin: 3px 0 20px 5px; } .controls a { - color: #988e4c; - padding: 0 3px 2px 22px; - font-family:@body-font; - font-size:13px; - background:url(../images/comment.png) no-repeat center left; + border: none; + color: #988e4c; + padding: 0 3px 5px 22px; + font-family: @body-font; + font-size: 13px; + font-weight: normal; + background: url(../images/comment.png) no-repeat center left; + .box-shadow(0, 0, 0); + .text-shadow(0, 0, 0); } .controls a:hover { - background-color: #f5f0c9; text-decoration: none; } @@ -2295,43 +2394,35 @@ ul#related-tags li { } form.post-comments { - margin: 3px 26px 0 42px; - textarea{ - font-size: 13px; - line-height: 1.3; - - } + padding: 6px 6px 7px 42px; + border-bottom: 1px solid #edeeeb; + margin-bottom: 0; } textarea { - height: 42px; - width:100%; - margin: 7px 0 5px 1px; + box-sizing: border-box; + border: #cce6ec 3px solid; font-family: @body-font; + font-size: 13px; + height: 54px; + line-height: 1.3; + margin: -1px 0 7px 1px; outline: none; overflow:auto; - font-size: 12px; - line-height: 140%; - padding-left:2px; - padding-top:3px; - border:#cce6ec 3px solid; + padding: 0px 19px 2px 3px; + width:100%; } - input { margin-left: 10px; margin-top: 1px; vertical-align: top; width: 100px; } - button{ - line-height:25px; - margin-bottom:5px; - .button-style(27px, 12px); - font-family:@body-font; - font-weight:bold; - } - button:hover{ - .button-style-hover; + button.submit { + height: 26px; + line-height: 26px; + padding: 0 8px; + margin-right: 6px; } .counter { display: inline-block; @@ -2345,16 +2436,13 @@ ul#related-tags li { } .comment { border-bottom: 1px solid #edeeeb; - clear:both; + clear: both; margin: 0; - margin-top:8px; - padding-bottom:4px; + padding-bottom: 4px; overflow: auto; - font-family:@body-font; - font-size:11px; + font-family: @body-font; + font-size: 11px; min-height: 25px; - background:#fff url(../images/comment-background.png) bottom repeat-x; - .rounded-corners(5px); } div.comment:hover { background-color: #efefef; @@ -2401,29 +2489,32 @@ ul#related-tags li { padding-left:6px; } - .convert-comment{ - display: inline; - white-space: nowrap; - padding-left: 0px; - } + .convert-comment { + display: inline; + white-space: nowrap; + padding-left: 0px; + input { + background: none; + padding: 0px; + color: #1B79BD; + border:none; + height: 13px; + width:auto; + font-family: Arial; + font-size: 13px; + font-weight: normal; + line-height: 13px; + margin: 0 0 0 8px; + .box-shadow(0, 0, 0); + .text-shadow(0, 0, 0); + } - .convert-comment input{ - background: none; - padding: 0px; - color: #1B79BD; - border:none; - width:auto; - font-family: Arial; - line-height: 14px; - margin-left: 6px; - font-size: 13px; - box-shadow: none; + input:hover { + text-decoration: underline; + cursor: pointer; + } } - .convert-comment input:hover{ - text-decoration:underline; - cursor:pointer; - } } .comment-body p{ @@ -2707,11 +2798,6 @@ ul#related-tags li { input.submit{ font-weight:normal; margin:5px 0px; - .button-style(26px,15px); - font-family:@body-font; - } - input.submit:hover{ - .button-style-hover; } .cancel{ background:url(../images/small-button-cancel.png) repeat-x top !important; @@ -2726,6 +2812,18 @@ ul#related-tags li { } } +.user-profile-page.inbox-group-join-requests { + form { + margin-bottom: 0; + } + table { + margin-bottom: 13px; + } + td { + padding-right: 10px; + } +} + .inbox-flags.user-profile-page { .re { width: 810px; @@ -2758,17 +2856,6 @@ ul#related-tags li { border:#cce6ec 3px solid; width:200px; } - .submit-b{ - .button-style(24px,15px); - font-family:@body-font; - font-weight:bold; - padding-right:10px; - border:0; - } - - .submit-b:hover{ - .button-style-hover; - } } @@ -2900,12 +2987,6 @@ a:hover.medal { .inputs { margin-top: 10px; margin-bottom: 10px; - input[type='submit']{ - .button-style(26px,15px); - } - } - input[type='submit'].select-language { - .button-style(26px,15px); } select { margin-bottom: 12px; @@ -2929,16 +3010,17 @@ a:hover.medal { p{font-size:13px;} } +.follow-toggle { + height: auto; +} + .follow-toggle,.submit { - border:0 !important; font-weight:bold; line-height:26px; margin-top:-2px; - .button-style(26px,14px); } .follow-toggle:hover, .submit:hover { - .button-style-hover; text-decoration:none !important; } @@ -3138,6 +3220,14 @@ ins .post-tag, ins p, ins { background-color: #E6F0A2; } +body.question-page ins, +body.main-page ins { + /* a hack for google adwords + * todo: make rule above more specific + * and remove this one */ + background: transparent; +} + /* ----- Red Popup notification ----- */ .vote-notification { @@ -4331,10 +4421,6 @@ textarea.tipped-input { border-spacing: 10px; border-collapse: separate; - button { - .button-style(27px, 14px); - } - form { display: inline-block; margin-bottom: 0; diff --git a/askbot/migrations/0013_add_response_count__to_user.py b/askbot/migrations/0013_add_response_count__to_user.py index f3d724e3..68ac0c3c 100644 --- a/askbot/migrations/0013_add_response_count__to_user.py +++ b/askbot/migrations/0013_add_response_count__to_user.py @@ -3,6 +3,7 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): @@ -13,16 +14,12 @@ class Migration(SchemaMigration): a bit hacky but we have to do it as long as we keep patching auth models within the forum application """ - try: - db.add_column( - u'auth_user', - 'response_count', - self.gf('django.db.models.fields.IntegerField')(default=0, ), - keep_default=False - ) - except: - print 'probably already have column User.response_count' - pass + safe_add_column( + u'auth_user', + 'response_count', + self.gf('django.db.models.fields.IntegerField')(default=0, ), + keep_default=False + ) def backwards(self, orm): diff --git a/askbot/migrations/0014_rename_schema_from_forum_to_askbot.py b/askbot/migrations/0014_rename_schema_from_forum_to_askbot.py index f5f913da..f9a5b739 100644 --- a/askbot/migrations/0014_rename_schema_from_forum_to_askbot.py +++ b/askbot/migrations/0014_rename_schema_from_forum_to_askbot.py @@ -10,19 +10,20 @@ app_dir_name = os.path.basename(os.path.dirname(os.path.dirname(__file__))) class Migration(SchemaMigration): def forwards(self, orm): - try: - db.rename_table('forum_anonymousanswer', 'askbot_anonymousanswer') - db.rename_table('forum_anonymousquestion', 'askbot_anonymousquestion') - db.rename_table('forum_emailfeedsetting', 'askbot_emailfeedsetting') - db.rename_table('forum_markedtag', 'askbot_markedtag') - db.rename_table('forum_questionview', 'askbot_questionview') - db.rename_table('forum_validationhash', 'askbot_validationhash') - except: - pass + if app_dir_name == 'forum': + try: + db.rename_table('forum_anonymousanswer', 'askbot_anonymousanswer') + db.rename_table('forum_anonymousquestion', 'askbot_anonymousquestion') + db.rename_table('forum_emailfeedsetting', 'askbot_emailfeedsetting') + db.rename_table('forum_markedtag', 'askbot_markedtag') + db.rename_table('forum_questionview', 'askbot_questionview') + db.rename_table('forum_validationhash', 'askbot_validationhash') + except: + pass def backwards(self, orm): - if app_dirname == 'forum': + if app_dir_name == 'forum': db.rename_table('askbot_anonymousanswer', 'forum_anonymousanswer') db.rename_table('askbot_anonymousquestion', 'forum_anonymousquestion') db.rename_table('askbot_emailfeedsetting', 'forum_emailfeedsetting') diff --git a/askbot/migrations/0018_add___status__field_to_user_model.py b/askbot/migrations/0018_add___status__field_to_user_model.py index 5a713866..b30f30d7 100644 --- a/askbot/migrations/0018_add___status__field_to_user_model.py +++ b/askbot/migrations/0018_add___status__field_to_user_model.py @@ -3,21 +3,19 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): # Adding field 'User.status' - try: - db.add_column( - u'auth_user', - 'status', - self.gf('django.db.models.fields.CharField')(default ='w', max_length = 2), - keep_default=False - ) - except: - pass + safe_add_column( + u'auth_user', + 'status', + self.gf('django.db.models.fields.CharField')(default ='w', max_length = 2), + keep_default=False + ) def backwards(self, orm): diff --git a/askbot/migrations/0026_add_seen_and_new_response_counts_to_user.py b/askbot/migrations/0026_add_seen_and_new_response_counts_to_user.py index 4cd05f83..8b6002bf 100644 --- a/askbot/migrations/0026_add_seen_and_new_response_counts_to_user.py +++ b/askbot/migrations/0026_add_seen_and_new_response_counts_to_user.py @@ -3,16 +3,14 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): # Adding fields - try: - db.add_column('auth_user', 'new_response_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) - db.add_column('auth_user', 'seen_response_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) - except: - pass + safe_add_column('auth_user', 'new_response_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) + safe_add_column('auth_user', 'seen_response_count', self.gf('django.db.models.fields.IntegerField')(default=0), keep_default=False) def backwards(self, orm): # Deleting fields diff --git a/askbot/migrations/0033_add__consecutive_days_visit_count__to__auth_user.py b/askbot/migrations/0033_add__consecutive_days_visit_count__to__auth_user.py index 580c2f25..e5a10faf 100644 --- a/askbot/migrations/0033_add__consecutive_days_visit_count__to__auth_user.py +++ b/askbot/migrations/0033_add__consecutive_days_visit_count__to__auth_user.py @@ -3,21 +3,19 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): # Adding field 'User.consecutive_days_visit_count' - try: - db.add_column( - u'auth_user', - 'consecutive_days_visit_count', - self.gf('django.db.models.fields.IntegerField')(default = 0, max_length = 2), - keep_default=False - ) - except: - pass + safe_add_column( + u'auth_user', + 'consecutive_days_visit_count', + self.gf('django.db.models.fields.IntegerField')(default = 0, max_length = 2), + keep_default=False + ) def backwards(self, orm): diff --git a/askbot/migrations/0035_add_country_fields_to_user.py b/askbot/migrations/0035_add_country_fields_to_user.py index 02dd404c..340883ba 100644 --- a/askbot/migrations/0035_add_country_fields_to_user.py +++ b/askbot/migrations/0035_add_country_fields_to_user.py @@ -3,17 +3,15 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): # Adding model country fields to the model auth_user - try: - db.add_column(u'auth_user', 'country', self.gf('django_countries.fields.CountryField')(max_length=2, blank=True, null=True)) - db.add_column(u'auth_user', 'show_country', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)) - except: - pass + safe_add_column(u'auth_user', 'country', self.gf('django_countries.fields.CountryField')(max_length=2, blank=True, null=True)) + safe_add_column(u'auth_user', 'show_country', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)) def backwards(self, orm): diff --git a/askbot/migrations/0037_add_marked_tags_to_user_profile.py b/askbot/migrations/0037_add_marked_tags_to_user_profile.py index f10f53be..306e16e6 100644 --- a/askbot/migrations/0037_add_marked_tags_to_user_profile.py +++ b/askbot/migrations/0037_add_marked_tags_to_user_profile.py @@ -3,18 +3,16 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): - try: - # Adding field 'User.interesting_tags' - db.add_column(u'auth_user', 'interesting_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) - # Adding field 'User.ignored_tags' - db.add_column(u'auth_user', 'ignored_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) - except: - pass + # Adding field 'User.interesting_tags' + safe_add_column(u'auth_user', 'interesting_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) + # Adding field 'User.ignored_tags' + safe_add_column(u'auth_user', 'ignored_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) def backwards(self, orm): diff --git a/askbot/migrations/0038_add_tag_filter_strategies.py b/askbot/migrations/0038_add_tag_filter_strategies.py index c2596366..a24d12bf 100644 --- a/askbot/migrations/0038_add_tag_filter_strategies.py +++ b/askbot/migrations/0038_add_tag_filter_strategies.py @@ -4,29 +4,27 @@ from south.db import db from south.v2 import SchemaMigration from django.db import models from askbot import const +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): # Adding model country fields to the model auth_user - try: - db.add_column( - u'auth_user', - 'email_tag_filter_strategy', - self.gf( - 'django.db.models.fields.SmallIntegerField' - )(default = const.EXCLUDE_IGNORED) - ) - db.add_column( - u'auth_user', - 'display_tag_filter_strategy', - self.gf( - 'django.db.models.fields.SmallIntegerField' - )(default = const.INCLUDE_ALL) - ) - except: - pass + safe_add_column( + u'auth_user', + 'email_tag_filter_strategy', + self.gf( + 'django.db.models.fields.SmallIntegerField' + )(default = const.EXCLUDE_IGNORED) + ) + safe_add_column( + u'auth_user', + 'display_tag_filter_strategy', + self.gf( + 'django.db.models.fields.SmallIntegerField' + )(default = const.INCLUDE_ALL) + ) def backwards(self, orm): diff --git a/askbot/migrations/0043_add_temporal_extra_column_for_datamigration.py b/askbot/migrations/0043_add_temporal_extra_column_for_datamigration.py index 4a8140a4..7582dc04 100644 --- a/askbot/migrations/0043_add_temporal_extra_column_for_datamigration.py +++ b/askbot/migrations/0043_add_temporal_extra_column_for_datamigration.py @@ -3,14 +3,12 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): - try: - db.add_column(u'auth_user', 'avatar_type', self.gf('django.db.models.fields.CharField')(max_length=1, default='n'), keep_default=False) - except: - pass + safe_add_column(u'auth_user', 'avatar_type', self.gf('django.db.models.fields.CharField')(max_length=1, default='n'), keep_default=False) def backwards(self, orm): db.delete_column(u'auth_user', 'avatar_type') diff --git a/askbot/migrations/0122_auth_user__add_subscribed_tag_field.py b/askbot/migrations/0122_auth_user__add_subscribed_tag_field.py index d84666fb..7f7ff971 100644 --- a/askbot/migrations/0122_auth_user__add_subscribed_tag_field.py +++ b/askbot/migrations/0122_auth_user__add_subscribed_tag_field.py @@ -3,15 +3,13 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): - try: - # Adding field 'User.interesting_tags' - db.add_column(u'auth_user', 'subscribed_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) - except: - pass + # Adding field 'User.interesting_tags' + safe_add_column(u'auth_user', 'subscribed_tags', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) def backwards(self, orm): # Deleting field 'User.interesting_tags' diff --git a/askbot/migrations/0124_auto__add_field_post_is_private__add_field_replyaddress_reply_action.py b/askbot/migrations/0124_auto__add_field_post_is_private__add_field_replyaddress_reply_action.py index b5a1e0c9..11b891da 100644 --- a/askbot/migrations/0124_auto__add_field_post_is_private__add_field_replyaddress_reply_action.py +++ b/askbot/migrations/0124_auto__add_field_post_is_private__add_field_replyaddress_reply_action.py @@ -3,6 +3,7 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): @@ -10,14 +11,14 @@ class Migration(SchemaMigration): def forwards(self, orm): # Adding field 'Post.is_private' db.start_transaction() - db.add_column('askbot_post', 'is_private', - self.gf('django.db.models.fields.BooleanField')(default=False), - keep_default=False) + safe_add_column('askbot_post', 'is_private', + self.gf('django.db.models.fields.BooleanField')(default=False), + keep_default=False) # Adding field 'ReplyAddress.reply_action' - db.add_column('askbot_replyaddress', 'reply_action', - self.gf('django.db.models.fields.CharField')(default='auto_answer_or_comment', max_length=32), - keep_default=False) + safe_add_column('askbot_replyaddress', 'reply_action', + self.gf('django.db.models.fields.CharField')(default='auto_answer_or_comment', max_length=32), + keep_default=False) # Changing field 'ReplyAddress.post' db.alter_column('askbot_replyaddress', 'post_id', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['askbot.Post'])) @@ -26,7 +27,7 @@ class Migration(SchemaMigration): try: db.start_transaction() # Adding field 'User.interesting_tags' - db.add_column(u'auth_user', 'email_signature', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) + safe_add_column(u'auth_user', 'email_signature', self.gf('django.db.models.fields.TextField')(blank=True, default = ''), keep_default=False) db.commit_transaction() except: db.rollback_transaction() diff --git a/askbot/migrations/0125_add_show_tags_field_to_user.py b/askbot/migrations/0125_add_show_tags_field_to_user.py index cb7ab2bd..fc299d18 100644 --- a/askbot/migrations/0125_add_show_tags_field_to_user.py +++ b/askbot/migrations/0125_add_show_tags_field_to_user.py @@ -3,6 +3,7 @@ import datetime from south.db import db from south.v2 import SchemaMigration from django.db import models +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): @@ -10,16 +11,13 @@ class Migration(SchemaMigration): def forwards(self, orm): # Adding model show_marked_tags fields to the model auth_user - try: - db.add_column( - u'auth_user', - 'show_marked_tags', - self.gf( - 'django.db.models.fields.BooleanField' - )(default=True, blank=True) - ) - except: - pass + safe_add_column( + u'auth_user', + 'show_marked_tags', + self.gf( + 'django.db.models.fields.BooleanField' + )(default=True, blank=True) + ) def backwards(self, orm): diff --git a/askbot/migrations/0126_add_field__auth_user__is_fake.py b/askbot/migrations/0126_add_field__auth_user__is_fake.py index e0928ed7..783d1e27 100644 --- a/askbot/migrations/0126_add_field__auth_user__is_fake.py +++ b/askbot/migrations/0126_add_field__auth_user__is_fake.py @@ -1,17 +1,14 @@ # -*- coding: utf-8 -*- from south.db import db from south.v2 import SchemaMigration +from askbot.migrations_api import safe_add_column class Migration(SchemaMigration): def forwards(self, orm): - try: - # Adding field 'User.is_fake' - db.add_column( - u'auth_user', 'is_fake', - self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) - except: - pass + safe_add_column( + u'auth_user', 'is_fake', + self.gf('django.db.models.fields.BooleanField')(default=False), keep_default=False) def backwards(self, orm): db.delete_column('auth_user', 'is_fake') diff --git a/askbot/migrations/__init__.py b/askbot/migrations/__init__.py index 86377b7b..b9683daf 100644 --- a/askbot/migrations/__init__.py +++ b/askbot/migrations/__init__.py @@ -1,5 +1,9 @@ from south.db import db from south.utils import ask_for_it_by_name +from south.v2 import SchemaMigration + +if not db.has_ddl_transactions: + SchemaMigration.no_dry_run = True # Terminal ANSI codes for printing colored text: # - http://code.google.com/p/testoob/source/browse/trunk/src/testoob/reporting/colored.py#20 @@ -67,3 +71,4 @@ def innodb_ready_rename_column(orm, models, table, old_column_name, new_column_n # INFO: ask_for_it_by_name() if equivalent to self.gf() which is usually used in migrations, e.g.: # db.alter_column('askbot_badgedata', 'slug', self.gf('django.db.models.fields.SlugField')(unique=True, max_length=50)) db.alter_column(table, new_column_name, field) + db.clear_deferred_sql() diff --git a/askbot/migrations_api/__init__.py b/askbot/migrations_api/__init__.py index 0260f51b..2e172a99 100644 --- a/askbot/migrations_api/__init__.py +++ b/askbot/migrations_api/__init__.py @@ -13,14 +13,19 @@ def safe_add_column(table, column, column_data, keep_default = False): so, we need to add these columns here in separate transactions and roll back if they fail, if we want we could also record - which columns clash """ - try: - db.start_transaction() - db.add_column(table, column, column_data, keep_default = keep_default) - db.commit_transaction() - return True - except: - db.rollback_transaction() - return False + if db.backend_name=='mysql': + if len(db.execute('select column_name from information_schema.columns where table_name=%s and column_name=%s', params=[table, column])) == 0: + db.add_column(table, column, column_data, keep_default = keep_default) + + else: + try: + db.start_transaction() + db.add_column(table, column, column_data, keep_default = keep_default) + db.commit_transaction() + return True + except: + db.rollback_transaction() + return False def mysql_table_supports_full_text_search(table_name): diff --git a/askbot/models/question.py b/askbot/models/question.py index 51a7c24b..c772804a 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -336,12 +336,24 @@ class ThreadManager(BaseQuerySetManager): else: raise Exception('UNANSWERED_QUESTION_MEANING setting is wrong') - elif search_state.scope == 'favorite': - favorite_filter = models.Q(favorited_by=request_user) + elif search_state.scope == 'followed': + followed_filter = models.Q(favorited_by=request_user) if 'followit' in django_settings.INSTALLED_APPS: followed_users = request_user.get_followed_users() - favorite_filter |= models.Q(posts__post_type__in=('question', 'answer'), posts__author__in=followed_users) - qs = qs.filter(favorite_filter) + followed_filter |= models.Q(posts__post_type__in=('question', 'answer'), posts__author__in=followed_users) + + #a special case: "personalized" main page only == + #if followed is the only available scope + #if total number (regardless of users selections) + #followed questions is < than a pagefull - we should mix in a list of + #random questions + if askbot_settings.ALL_SCOPE_ENABLED == askbot_settings.UNANSWERED_SCOPE_ENABLED == False: + followed_question_count = qs.filter(followed_filter).distinct().count() + if followed_question_count < 30: + #here we mix in anything + followed_filter |= models.Q(deleted=False) + + qs = qs.filter(followed_filter) #user contributed questions & answers if search_state.author: @@ -1398,6 +1410,8 @@ class Thread(models.Model): 'search_state': DummySearchState(), 'visitor': visitor } + from askbot.views.context import get_extra as get_extra_context + context.update(get_extra_context('ASKBOT_QUESTION_SUMMARY_EXTRA_CONTEXT', None, context)) html = get_template('widgets/question_summary.html').render(context) # INFO: Timeout is set to 30 days: # * timeout=0/None is not a reliable cross-backend way to set infinite timeout diff --git a/askbot/models/signals.py b/askbot/models/signals.py index d538de76..f5187876 100644 --- a/askbot/models/signals.py +++ b/askbot/models/signals.py @@ -25,6 +25,16 @@ user_registered = django.dispatch.Signal(providing_args=['user',]) #todo: move this to authentication app user_logged_in = django.dispatch.Signal(providing_args=['session']) +new_answer_posted = django.dispatch.Signal( + providing_args=['answer', 'user', 'form_data'] +) +answer_edited = django.dispatch.Signal( + providing_args=['answer', 'user', 'form_data'] +) +answer_before_editing = django.dispatch.Signal( + providing_args=['answer', 'user', 'form'] +) + post_updated = django.dispatch.Signal( providing_args=[ 'post', diff --git a/askbot/search/state_manager.py b/askbot/search/state_manager.py index 7b6b746c..efefbc40 100644 --- a/askbot/search/state_manager.py +++ b/askbot/search/state_manager.py @@ -9,6 +9,7 @@ from django.utils.encoding import smart_str import askbot import askbot.conf +from askbot.conf import settings as askbot_settings from askbot import const from askbot.utils.functions import strip_plus @@ -90,8 +91,11 @@ class SearchState(object): def __init__(self, scope, sort, query, tags, author, page, user_logged_in): # INFO: zip(*[('a', 1), ('b', 2)])[0] == ('a', 'b') - if (scope not in zip(*const.POST_SCOPE_LIST)[0]) or (scope == 'favorite' and not user_logged_in): - self.scope = const.DEFAULT_POST_SCOPE + if (scope not in zip(*const.POST_SCOPE_LIST)[0]) or (scope == 'followed' and not user_logged_in): + if user_logged_in: + self.scope = askbot_settings.DEFAULT_SCOPE_AUTHENTICATED + else: + self.scope = askbot_settings.DEFAULT_SCOPE_ANONYMOUS else: self.scope = scope diff --git a/askbot/setup_templates/settings.py b/askbot/setup_templates/settings.py index 237a1280..3b41dfbd 100644 --- a/askbot/setup_templates/settings.py +++ b/askbot/setup_templates/settings.py @@ -116,6 +116,14 @@ MIDDLEWARE_CLASSES = ( 'askbot.middleware.spaceless.SpacelessMiddleware', ) +JINJA2_EXTENSIONS = ( + 'compressor.contrib.jinja2ext.CompressorExtension', +) + +COMPRESS_PRECOMPILERS = ( + ('text/less', 'lessc {infile} {outfile}'), +) + ROOT_URLCONF = os.path.basename(os.path.dirname(__file__)) + '.urls' @@ -161,6 +169,7 @@ INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.humanize', 'django.contrib.sitemaps', + 'django.contrib.messages', #'debug_toolbar', #'haystack', 'askbot', @@ -176,6 +185,8 @@ INSTALLED_APPS = ( 'followit', 'tinymce', #'avatar',#experimental use git clone git://github.com/ericflo/django-avatar.git$ + + 'compressor', ) @@ -234,6 +245,11 @@ CSRF_COOKIE_NAME = 'askbot_csrf' STATICFILES_DIRS = ( ('default/media', os.path.join(ASKBOT_ROOT, 'media')), ) +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'compressor.finders.CompressorFinder', +) RECAPTCHA_USE_SSL = True @@ -248,7 +264,7 @@ TINYMCE_COMPRESSOR = True TINYMCE_SPELLCHECKER = False TINYMCE_JS_ROOT = os.path.join(STATIC_ROOT, 'default/media/js/tinymce/') -TINYMCE_URL = STATIC_URL + 'default/media/js/tinymce/' +#TINYMCE_JS_URL = STATIC_URL + 'default/media/js/tinymce/tiny_mce.js' TINYMCE_DEFAULT_CONFIG = { 'plugins': 'askbot_imageuploader,askbot_attachment', 'convert_urls': False, @@ -268,8 +284,16 @@ TINYMCE_DEFAULT_CONFIG = { 'theme_advanced_resizing': True, 'theme_advanced_resize_horizontal': False, 'theme_advanced_statusbar_location': 'bottom', + 'width': '730', 'height': '250' } #delayed notifications, time in seconds, 15 mins by default NOTIFICATION_DELAY_TIME = 60 * 15 + +GROUP_MESSAGING = { + 'BASE_URL_GETTER_FUNCTION': 'askbot.models.user_get_profile_url', + 'BASE_URL_PARAMS': {'section': 'messages', 'sort': 'inbox'} +} + +ASKBOT_MULTILINGUAL = False diff --git a/askbot/setup_templates/settings.py.mustache b/askbot/setup_templates/settings.py.mustache index bd77e82e..61ee5993 100644 --- a/askbot/setup_templates/settings.py.mustache +++ b/askbot/setup_templates/settings.py.mustache @@ -163,6 +163,7 @@ INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.humanize', 'django.contrib.sitemaps', + 'django.contrib.messages', #'debug_toolbar', #Optional, to enable haystack search #'haystack', @@ -250,10 +251,10 @@ HAYSTACK_SITECONF = 'askbot.search.haystack' #http://django-haystack.readthedocs.org/en/v1.2.7/settings.html HAYSTACK_SEARCH_ENGINE = 'simple' -TINYMCE_COMPRESSOR = True +TINYMCE_COMPRESSOR = True TINYMCE_SPELLCHECKER = False TINYMCE_JS_ROOT = os.path.join(STATIC_ROOT, 'default/media/js/tinymce/') -TINYMCE_URL = STATIC_URL + 'default/media/js/tinymce/' +#TINYMCE_JS_URL = STATIC_URL + 'default/media/js/tinymce/tiny_mce.js' TINYMCE_DEFAULT_CONFIG = { 'plugins': 'askbot_imageuploader,askbot_attachment', 'convert_urls': False, @@ -274,7 +275,7 @@ TINYMCE_DEFAULT_CONFIG = { 'theme_advanced_resizing': True, 'theme_advanced_resize_horizontal': False, 'theme_advanced_statusbar_location': 'bottom', - 'width': '723', + 'width': '730', 'height': '250' } @@ -285,3 +286,5 @@ GROUP_MESSAGING = { 'BASE_URL_GETTER_FUNCTION': 'askbot.models.user_get_profile_url', 'BASE_URL_PARAMS': {'section': 'messages', 'sort': 'inbox'} } + +ASKBOT_MULTILINGUAL = False diff --git a/askbot/setup_templates/urls.py b/askbot/setup_templates/urls.py index 35f1c5b3..4c76781b 100644 --- a/askbot/setup_templates/urls.py +++ b/askbot/setup_templates/urls.py @@ -30,7 +30,7 @@ urlpatterns += patterns('', (r'^tinymce/', include('tinymce.urls')), (r'^robots.txt$', include('robots.urls')), url( # TODO: replace with django.conf.urls.static ? - r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], + r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT.replace('\\','/')}, ), diff --git a/askbot/skins/loaders.py b/askbot/skins/loaders.py index 50276f34..88dc2ef0 100644 --- a/askbot/skins/loaders.py +++ b/askbot/skins/loaders.py @@ -5,6 +5,7 @@ from django.template import TemplateDoesNotExist from django.http import HttpResponse from django.utils import translation from django.conf import settings as django_settings +from django.core.exceptions import ImproperlyConfigured from coffin.common import CoffinEnvironment from jinja2 import loaders as jinja_loaders from jinja2.exceptions import TemplateNotFound @@ -59,9 +60,20 @@ class SkinEnvironment(CoffinEnvironment): or empty string - depending on the existence of file SKIN_PATH/media/style/extra.css """ - url = utils.get_media_url('style/extra.css', ignore_missing = True) + url = None + + if django_settings.ASKBOT_CSS_DEVEL is True: + url = utils.get_media_url('style/extra.less', ignore_missing=True) + rel = "stylesheet/less" + + #second try - if there is no extra.less in devel mode - try css + if url is None: + url = utils.get_media_url('style/extra.css', ignore_missing=True) + rel = "stylesheet" + if url is not None: - return '<link href="%s" rel="stylesheet" type="text/css" />' % url + return '<link href="%s" rel="%s" type="text/less" />' % (url, rel) + return '' def load_skins(): @@ -81,7 +93,12 @@ SKINS = load_skins() def get_skin(request = None): """retreives the skin environment for a given request (request var is not used at this time)""" - return SKINS[askbot_settings.ASKBOT_DEFAULT_SKIN] + skin_name = askbot_settings.ASKBOT_DEFAULT_SKIN + try: + return SKINS[skin_name] + except KeyError: + msg_fmt = 'skin "%s" not found, check value of "ASKBOT_EXTRA_SKINS_DIR"' + raise ImproperlyConfigured(msg_fmt % skin_name) def get_askbot_template(template, request = None): """ diff --git a/askbot/startup_procedures.py b/askbot/startup_procedures.py index f3597820..7d2e0216 100644 --- a/askbot/startup_procedures.py +++ b/askbot/startup_procedures.py @@ -108,6 +108,26 @@ def test_askbot_url(): msg = 'if ASKBOT_URL setting is not empty, ' + \ 'it must not start with /' + +def test_jinja2(): + """tests Jinja2 settings""" + compressor_ext = 'compressor.contrib.jinja2ext.CompressorExtension' + ext_list = getattr(django_settings, 'JINJA2_EXTENSIONS', None) + errors = list() + if ext_list is None: + errors.append( + "Please add the following line to your settings.py:\n" + "JINJA2_EXTENSIONS = ('%s',)" % compressor_ext + ) + elif compressor_ext not in ext_list: + errors.append( + "Please add to the JINJA2_EXTENSIONS list an item:\n" + "'%s'," % compressor_ext + ) + + print_errors(errors) + + def test_middleware(): """Checks that all required middleware classes are installed in the django settings.py file. If that is not the @@ -231,7 +251,7 @@ def test_template_loader(): errors.append( '"%s" must be the first element of TEMPLATE_LOADERS' % current_loader ) - + print_errors(errors) def test_celery(): @@ -287,6 +307,40 @@ def test_celery(): "in your settings.py file" ) +def test_compressor(): + """test settings for django compressor""" + precompilers = getattr(django_settings, 'COMPRESS_PRECOMPILERS', None) + errors = list() + lessc_item = ('text/less', 'lessc {infile} {outfile}') + if precompilers is None: + errors.append( + 'Please add to your settings.py file: \n' + 'COMPRESS_PRECOMPILERS = (\n' + " ('%s', '%s'),\n" + ')' % lessc_item + ) + else: + if lessc_item not in precompilers: + errors.append( + 'Please add to the COMPRESS_PRECOMPILERS the following item:\n' + "('%s', '%s')," % lessc_item + ) + + js_filters = getattr(django_settings, 'COMPRESS_JS_FILTERS', []) + if len(js_filters) > 0: + errors.append( + 'Askbot does not yet support js minification, please add to your settings.py:\n' + 'COMPRESS_JS_FILTERS = []' + ) + + if 'compressor' not in django_settings.INSTALLED_APPS: + errors.append( + 'add to the INSTALLED_APPS the following entry:\n' + " 'compressor'," + ) + + print_errors(errors) + def test_media_url(): """makes sure that setting `MEDIA_URL` has leading slash""" @@ -472,6 +526,26 @@ def test_staticfiles(): ' python manage.py collectstatic\n' ) + required_finders = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'compressor.finders.CompressorFinder', + ) + + finders = getattr(django_settings, 'STATICFILES_FINDERS', None) + + missing_finders = list() + for finder in required_finders: + if finder not in finders: + missing_finders.append(finder) + + if missing_finders: + errors.append( + 'Please make sure that the following items are \n' + \ + 'part of the STATICFILES_FINDERS tuple, create this tuple, if it is missing:\n' + + ' "' + '",\n "'.join(missing_finders) + '",\n' + ) + print_errors(errors) if django_settings.STATICFILES_STORAGE == \ 'django.contrib.staticfiles.storage.StaticFilesStorage': @@ -609,7 +683,6 @@ def test_tinymce(): required_attrs = ( 'TINYMCE_COMPRESSOR', 'TINYMCE_JS_ROOT', - 'TINYMCE_URL', 'TINYMCE_DEFAULT_CONFIG' ) @@ -664,16 +737,6 @@ def test_tinymce(): error_tpl += '\nNote: we have moved files from "common" into "default"' errors.append(error_tpl % relative_js_path) - #check url setting - url = getattr(django_settings, 'TINYMCE_URL', '') - expected_url = django_settings.STATIC_URL + relative_js_path - old_expected_url = django_settings.STATIC_URL + old_relative_js_path - if urls_equal(url, expected_url) is False: - error_tpl = "add line: TINYMCE_URL = STATIC_URL + '%s'" - if urls_equal(url, old_expected_url): - error_tpl += '\nNote: we have moved files from "common" into "default"' - errors.append(error_tpl % relative_js_path) - if errors: header = 'Please add the tynymce editor configuration ' + \ 'to your settings.py file.' @@ -721,7 +784,7 @@ def test_template_context_processors(): required_processors.append(new_auth_processor) if old_auth_processor in django_settings.TEMPLATE_CONTEXT_PROCESSORS: invalid_processors.append(old_auth_processor) - + missing_processors = list() for processor in required_processors: if processor not in django_settings.TEMPLATE_CONTEXT_PROCESSORS: @@ -790,7 +853,7 @@ def test_group_messaging(): errors.append( "make setting 'GROUP_MESSAGING to be exactly:\n" + settings_sample ) - + url_params = settings.get('BASE_URL_PARAMS', None) else: errors.append('add this to your settings.py:\n' + settings_sample) @@ -819,7 +882,7 @@ def test_multilingual(): errors.append('ASKBOT_MULTILINGUAL=True works only with django >= 1.4') if is_multilang: - middleware = 'django.middleware.locale.LocaleMiddleware' + middleware = 'django.middleware.locale.LocaleMiddleware' if middleware not in django_settings.MIDDLEWARE_CLASSES: errors.append( "add 'django.middleware.locale.LocaleMiddleware' to your MIDDLEWARE_CLASSES " @@ -835,32 +898,42 @@ def test_multilingual(): print_errors(errors) +def test_messages_framework(): + if not 'django.contrib.messages' in django_settings.INSTALLED_APPS: + errors = ('Add to the INSTALLED_APPS section of your settings.py:\n "django.contrib.messages"', ) + print_errors(errors) def run_startup_tests(): """function that runs all startup tests, mainly checking settings config so far """ + #this is first because it gives good info on what to install + test_modules() #todo: refactor this when another test arrives - test_template_loader() - test_encoding() - test_modules() test_askbot_url() + test_avatar() + test_cache_backend() + test_celery() + test_compressor() + test_custom_user_profile_tab() + test_encoding() + test_group_messaging() + test_haystack() + test_jinja2() + test_longerusername() + test_new_skins() + test_media_url() #test_postgres() + test_messages_framework() test_middleware() - test_celery() + test_multilingual() #test_csrf_cookie_domain() + test_secret_key() + test_staticfiles() + test_template_loader() test_template_context_processors() test_tinymce() - test_staticfiles() - test_new_skins() - test_longerusername() - test_avatar() - test_group_messaging() - test_multilingual() - test_haystack() - test_cache_backend() - test_secret_key() settings_tester = SettingsTester({ 'CACHE_MIDDLEWARE_ANONYMOUS_ONLY': { 'value': True, @@ -897,10 +970,8 @@ def run_startup_tests(): } }) settings_tester.run() - test_media_url() if 'manage.py test' in ' '.join(sys.argv): test_settings_for_test_runner() - test_custom_user_profile_tab() @transaction.commit_manually def run(): diff --git a/askbot/templates/answer_edit.html b/askbot/templates/answer_edit.html index f80715ec..875eec5b 100644 --- a/askbot/templates/answer_edit.html +++ b/askbot/templates/answer_edit.html @@ -40,8 +40,18 @@ {% endif %} </div> <div class="after-editor"> - <input id="edit_post_form_submit_button" type="submit" value="{% trans %}Save edit{% endtrans %}" class="submit" /> - <input type="button" value="{% trans %}Cancel{% endtrans %}" class="submit" onclick="history.back(-1);" /> + <input + id="edit_post_form_submit_button" + type="submit" + value="{% trans %}Save edit{% endtrans %}" + class="large submit" + /> + <input + type="button" + value="{% trans %}Cancel{% endtrans %}" + class="large submit" + onclick="history.back(-1);" + /> </div> </form> diff --git a/askbot/templates/authopenid/authopenid_macros.html b/askbot/templates/authopenid/authopenid_macros.html index 9d35ac6f..d0dca8bf 100644 --- a/askbot/templates/authopenid/authopenid_macros.html +++ b/askbot/templates/authopenid/authopenid_macros.html @@ -63,7 +63,7 @@ <h2 id="openid-heading">{% trans %}Please enter your <span>user name</span>, then sign in{% endtrans %}</h2> <p class="hint">{% trans %}(or select another login method above){% endtrans %}</p> <input type="text" name="openid_login_token" /> - <input class="submit-b" type="submit" name="openid_login_with_extra_token" value="{% trans %}Sign in{% endtrans %}"/> + <input type="submit" name="openid_login_with_extra_token" value="{% trans %}Sign in{% endtrans %}"/> </fieldset> {% endif %} {% endmacro %} diff --git a/askbot/templates/authopenid/signin.html b/askbot/templates/authopenid/signin.html index c5a5c47f..ff7d47a4 100644 --- a/askbot/templates/authopenid/signin.html +++ b/askbot/templates/authopenid/signin.html @@ -115,7 +115,7 @@ </tr>
</table>
<p id="local_login_buttons">
- <input class="submit-b" name="login_with_password" type="submit" value="{% trans %}Sign in{% endtrans %}" />
+ <input name="login_with_password" type="submit" value="{% trans %}Sign in{% endtrans %}" />
{% if settings.USE_LDAP_FOR_PASSWORD_LOGIN == False %}
<a class="create-password-account" style="vertical-align:middle" href="{% url user_signup_with_password %}?login_provider=local">{% trans %}Create a password-protected account{% endtrans %}</a>
{% endif %}
@@ -145,7 +145,7 @@ </tr>
</table>
<p id="local_login_buttons">
- <input class="submit-b" name="change_password" type="submit" value="{% trans %}Change password{% endtrans %}" />
+ <input name="change_password" type="submit" value="{% trans %}Change password{% endtrans %}" />
</p>
{% endif %}
</fieldset>
@@ -212,7 +212,6 @@ {% endif %}
{{ account_recovery_form.email }}
<input
- class="submit-b"
type="submit"
{% if view_subtype == 'bad_key' %}
value="{% trans %}Send a new recovery key{% endtrans %}"
diff --git a/askbot/templates/authopenid/widget_signin.html b/askbot/templates/authopenid/widget_signin.html index c3dbcfde..72860120 100644 --- a/askbot/templates/authopenid/widget_signin.html +++ b/askbot/templates/authopenid/widget_signin.html @@ -115,7 +115,7 @@ </tr>
</table>
<p id="local_login_buttons">
- <input class="submit-b" name="login_with_password" type="submit" value="{% trans %}Sign in{% endtrans %}" />
+ <input name="login_with_password" type="submit" value="{% trans %}Sign in{% endtrans %}" />
{% if settings.USE_LDAP_FOR_PASSWORD_LOGIN == False %}
<a class="create-password-account" style="vertical-align:middle" href="{% url user_signup_with_password %}?login_provider=local">{% trans %}Create a password-protected account{% endtrans %}</a>
{% endif %}
@@ -145,7 +145,7 @@ </tr>
</table>
<p id="local_login_buttons">
- <input class="submit-b" name="change_password" type="submit" value="{% trans %}Change password{% endtrans %}" />
+ <input name="change_password" type="submit" value="{% trans %}Change password{% endtrans %}" />
</p>
{% endif %}
</fieldset>
@@ -212,7 +212,6 @@ {% endif %}
{{ account_recovery_form.email }}
<input
- class="submit-b"
type="submit"
{% if view_subtype == 'bad_key' %}
value="{% trans %}Send a new recovery key{% endtrans %}"
diff --git a/askbot/templates/base.html b/askbot/templates/base.html index 6c162057..80230b26 100644 --- a/askbot/templates/base.html +++ b/askbot/templates/base.html @@ -1,3 +1,4 @@ +{% load compress %} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> @@ -12,7 +13,7 @@ {% endif %} <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" /> <link rel="shortcut icon" href="{{ settings.SITE_FAVICON|media }}" /> - <link + <link rel="alternate" type="application/rss+xml" title="{% trans site_title=settings.APP_SHORT_NAME %}RSS feed from {{ site_title }}{% endtrans %}" @@ -20,7 +21,7 @@ /> {% block before_css %}{% endblock %} {% include "meta/html_head_stylesheets.html" %} - {% include "meta/fonts.html" %} + {% include "meta/fonts.html" %} {# may contain external files #} {% block forestyle %}{% endblock %} {% include "meta/html_head_javascript.html" %} {% block forejs %}{% endblock %} diff --git a/askbot/templates/list_suggested_tags.html b/askbot/templates/list_suggested_tags.html index 31e48c09..660c8308 100644 --- a/askbot/templates/list_suggested_tags.html +++ b/askbot/templates/list_suggested_tags.html @@ -31,8 +31,8 @@ {% if tag.threads.count() == 0 %} <tr class="thread-info" data-thread-id="0"> <td class="per-thread-controls"> - <button class="btn accept">{% trans %}Accept{% endtrans %}</button> - <button class="btn reject">{% trans %}Reject{% endtrans %}</button> + <button class="accept">{% trans %}Accept{% endtrans %}</button> + <button class="reject">{% trans %}Reject{% endtrans %}</button> </td> <td class="thread-links-col"> <span>{% trans %}There are no questions with this tag yet{% endtrans %}</span> @@ -42,8 +42,8 @@ {% for thread in tag.threads.all() %} <tr class="thread-info" data-thread-id="{{ thread.id }}"> <td class="per-thread-controls"> - <button class="btn accept">{% trans %}Accept{% endtrans %}</button> - <button class="btn reject">{% trans %}Reject{% endtrans %}</button> + <button class="accept">{% trans %}Accept{% endtrans %}</button> + <button class="reject">{% trans %}Reject{% endtrans %}</button> </td> <td class="thread-links-col"> <a title="{{ thread._question_post().summary|escape }}" @@ -59,8 +59,8 @@ <tr class="per-tag-controls" data-tag-id="{{ tag.id }}"> <td colspan="4"> {% if tag.threads.count() > 1 %} - <button class="btn accept">{% trans name=tag.name %}Apply tag "{{ name }}" to all above questions{% endtrans %}</button> - <button class="btn reject">{% trans %}Reject tag{% endtrans %}</button> + <button class="accept">{% trans name=tag.name %}Apply tag "{{ name }}" to all above questions{% endtrans %}</button> + <button class="reject">{% trans %}Reject tag{% endtrans %}</button> {% endif %} </td> </tr> diff --git a/askbot/templates/macros.html b/askbot/templates/macros.html index f94fc12d..2d345940 100644 --- a/askbot/templates/macros.html +++ b/askbot/templates/macros.html @@ -171,12 +171,12 @@ poor design of the data or methods on data objects #} {%- macro tag_cloud(tags = None, font_sizes = None, search_state = None) -%} {% for tag in tags %} - <span class="tag-size-{{ font_sizes[tag.name] }}"> + <span class="tag-size-{{ font_sizes[tag.name]|escape }}"> <a class="link-typeA" title="Number of entries: {{ tag.used_count }}" href="{{ search_state.add_tag(tag.name).full_url() }}" - >{{ tag.name }}</a> + >{{ tag.name|escape }}</a> </span> {% endfor %} {%- endmacro -%} @@ -258,7 +258,7 @@ poor design of the data or methods on data objects #} -%} {% if acceptance_level in ('open', 'moderated') %} <button - class="group-join-btn follow-toggle {% if membership_level != 'none' %}on on-state{% endif %}" + class="group-join-btn button follow-toggle {% if membership_level != 'none' %}on on-state{% endif %}" data-group-id="{{group_id}}" {% if acceptance_level == 'open' %} data-off-prompt-text="{% trans %}Leave this group{% endtrans %}" @@ -539,7 +539,6 @@ for the purposes of the AJAX comment editor #} {%- macro tag_autocomplete_js(id = '#id_tags') -%} var tagAc = new AutoCompleter({ url: '{% url "get_tag_list" %}', - preloadData: true, minChars: 1, useCache: true, matchInside: true, @@ -564,7 +563,7 @@ answer {% if answer.accepted() %}accepted-answer{% endif %} {% if answer.author_ {%- macro follow_toggle(follow, name, alias, id) -%} {# follow - boolean; name - object type name; alias - e.g. users name; id - object id #} <div - class="follow-toggle follow-user-toggle" + class="button follow-toggle follow-user-toggle" id="follow-{{ name|escape }}-{{ id }}" > {% if follow %} @@ -658,8 +657,8 @@ answer {% if answer.accepted() %}accepted-answer{% endif %} {% if answer.author_ {%- macro user_website_link(user, max_display_length=25) -%} {% if user.website and (not user.is_blocked()) %} <a - href="{{user.website}}" - title="{% trans username=user.username|escape, url=user.website %}{{username}}'s website is {{url}}{% endtrans %}" + href="{{user.website|escape}}" + title="{% trans username=user.username|escape, url=user.website|escape %}{{username}}'s website is {{url}}{% endtrans %}" {% if user.can_have_strong_url() == False %} rel="nofollow" {% endif %} diff --git a/askbot/templates/main_page/javascript.html b/askbot/templates/main_page/javascript.html index 55b31d00..dc6bdc94 100644 --- a/askbot/templates/main_page/javascript.html +++ b/askbot/templates/main_page/javascript.html @@ -1,6 +1,10 @@ <script type="text/javascript"> + {# cant cache this #} + askbot['settings']['showSortByRelevance'] = {{ show_sort_by_relevance|as_js_bool }}; +</script> +{% compress js %} +<script type="text/javascript"> /*<![CDATA[*/ - askbot['settings']['showSortByRelevance'] = {% if show_sort_by_relevance %}true{% else %}false{% endif %}; $(document).ready(function(){ /*var on_tab = '#nav_questions'; $(on_tab).attr('className','on');*/ @@ -40,6 +44,5 @@ /*]]>*/ </script> <script type='text/javascript' src='{{"/js/editor.js"|media}}'></script> -{% if request.user.is_authenticated() %} <script type='text/javascript' src='{{"/js/tag_selector.js"|media}}'></script> -{% endif %} +{% endcompress %} diff --git a/askbot/templates/main_page/nothing_found.html b/askbot/templates/main_page/nothing_found.html index 1e2c5445..98629476 100644 --- a/askbot/templates/main_page/nothing_found.html +++ b/askbot/templates/main_page/nothing_found.html @@ -3,7 +3,7 @@ {% if search_state.scope == "unanswered" %} {% trans %}There are no unanswered questions here{% endtrans %} {% endif %} -{% if search_state.scope == "favorite" %} +{% if search_state.scope == "followed" %} {% trans %}No questions here. {% endtrans %} {% trans %}Please follow some questions or follow some users.{% endtrans %} {% endif %} diff --git a/askbot/templates/meta/bottom_scripts.html b/askbot/templates/meta/bottom_scripts.html index 1a910672..86a2490b 100644 --- a/askbot/templates/meta/bottom_scripts.html +++ b/askbot/templates/meta/bottom_scripts.html @@ -13,11 +13,8 @@ noscript.style.backgroundColor = 'transparent'; </script> </div> +{# this section cannot be compressed because lots of data is runtime #} <script type="text/javascript"> - var i18nLang = '{{ language_code }}'; - var scriptUrl = '/{{settings.ASKBOT_URL}}' - var askbotSkin = '{{settings.ASKBOT_DEFAULT_SKIN}}'; - var enableMathJax = {% if settings.ENABLE_MATHJAX %}true{% else %}false{% endif %}; askbot['urls']['mark_read_message'] = '{% url "read_message" %}'; askbot['urls']['get_tags_by_wildcard'] = '{% url "get_tags_by_wildcard" %}'; askbot['urls']['get_tag_list'] = '{% url "get_tag_list" %}'; @@ -28,24 +25,29 @@ askbot['urls']['titleSearch'] = '{% url "title_search" %}'; askbot['urls']['ask'] = '{% url "ask" %}'; askbot['urls']['questions'] = '{% url "questions" %}'; + askbot['settings']['groupsEnabled'] = {{ settings.GROUPS_ENABLED|as_js_bool }}; askbot['settings']['static_url'] = '{{ settings.STATIC_URL }}'; askbot['settings']['minSearchWordLength'] = {{ settings.MIN_SEARCH_WORD_LENGTH }}; + askbot['settings']['mathjaxEnabled'] = {{ settings.ENABLE_MATHJAX|as_js_bool }}; askbot['settings']['sharingSuffixText'] = '{{ settings.SHARING_SUFFIX_TEXT|escape }}'; -</script> -<script - type="text/javascript" - {% if settings.DEBUG %} - src="{{"/js/jquery-1.7.2.min.js"|media}}" + askbot['data']['haveFlashNotifications'] = {{ user_messages|as_js_bool }}; + askbot['data']['activeTab'] = '{{ active_tab }}'; + {% if search_state %} + askbot['data']['searchUrl'] = '{{ search_state.query_string()|escapejs }}'; {% else %} - src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" + askbot['data']['searchUrl'] = ''; {% endif %} -></script> +</script> +{# everything below until the custom js and google analytics is compressable #} +{% compress js %} +<script type="text/javascript" src="{{"/js/jquery-1.7.2.min.js"|media}}"></script> <script type="text/javascript" src='{{"/bootstrap/js/bootstrap.js"|media}}'></script> <!-- History.js --> <script type='text/javascript' src="{{"/js/jquery.history.js"|media }}"></script> <script type='text/javascript' src="{{"/js/utils.js"|media }}"></script> <script type="text/javascript" src="{{'/js/live_search.js'|media}}"></script> {% if settings.ENABLE_MATHJAX %} + {# we don't want to load mathjax just in case, only if it is really enabled #} <script type='text/javascript' src="{{settings.MATHJAX_BASE_URL}}/MathJax.js"> MathJax.Hub.Config({ extensions: ["tex2jax.js"], @@ -58,59 +60,59 @@ /*<![CDATA[*/ $(document).ready(function(){ // focus input on the search bar endcomment - {% if active_tab in ('users', 'questions', 'tags', 'badges') %} + var activeTab = askbot['data']['activeTab']; + if (inArray(activeTab, ['users', 'questions', 'tags', 'badges'])) { var searchInput = $('#keywords'); - {% elif active_tab == 'ask' %} + } else if (activeTab === 'ask') { var searchInput = $('#id_title'); - {% else %} + } else { var searchInput = undefined; animateHashes(); - {% endif %} + } if (searchInput) { searchInput.focus(); putCursorAtEnd(searchInput); } - {% if active_tab in ('questions', 'badges', 'ask') %} - if (searchInput) { + if (inArray(activeTab, ['questions', 'badges', 'ask']) && searchInput.length) { var search = new FullTextSearch(); askbot['controllers'] = askbot['controllers'] || {}; askbot['controllers']['fullTextSearch'] = search; - {% if search_state %} - search.setSearchUrl('{{ search_state.query_string()|escapejs }}'); - {% else %} - search.setSearchUrl(''); - {% endif %} - {% if active_tab == 'ask' %} + search.setSearchUrl(askbot['data']['searchUrl']); + if (activeTab === 'ask') { search.setAskButtonEnabled(false); - {% endif %} + } + search.decorate(searchInput); + } else if (activeTab === 'tags') { + var search = new TagSearch(); search.decorate(searchInput); } - {% endif %} if (askbot['data']['userIsAdminOrMod']) { $('body').addClass('admin'); } - {%if settings.GROUPS_ENABLED %} - askbot['urls']['add_group'] = "{% url add_group %}"; - var group_dropdown = new GroupDropdown({{group_list}}); - $('.dropdown').append(group_dropdown.getElement()); - {%if request.user.is_superuser%} - group_dropdown.enableAddGroups(); - {%endif%} - {% endif %} + if (askbot['settings']['groupsEnabled']) { + askbot['urls']['add_group'] = "{% url add_group %}"; + var group_dropdown = new GroupDropdown({{ group_list }}); + $('.dropdown').append(group_dropdown.getElement()); + if (askbot['data']['userIsAdmin']) { + group_dropdown.enableAddGroups(); + } + } }); -{% if user_messages %} - $('#validate_email_alert').click(function(){notify.close(true)}) - notify.show(); -{% endif %} + if (askbot['data']['haveFlashNotifications']) { + $('#validate_email_alert').click(function(){notify.close(true)}) + notify.show(); + } $('abbr.timeago').timeago(); /*]]>*/ </script> +{% endcompress %} +{# stuff below should not be compressed #} {% if settings.USE_CUSTOM_JS %} <script - src="{% url "custom_js"%}?v={{ settings.MEDIA_RESOURCE_REVISION }}" + src="{% url "custom_js" %}?v={{ settings.MEDIA_RESOURCE_REVISION }}" type="text/javascript" ></script> {% endif %} diff --git a/askbot/templates/meta/editor_data.html b/askbot/templates/meta/editor_data.html index f0402672..d7328b7d 100644 --- a/askbot/templates/meta/editor_data.html +++ b/askbot/templates/meta/editor_data.html @@ -1,16 +1,14 @@ <script type="text/javascript"> {# data necessary for the post editor, goes into endjs block #} - askbot['settings']['tagsAreRequired'] = - {% if settings.TAGS_ARE_REQUIRED %}true{% else %}false{% endif %}; - askbot['settings']['maxTagLength'] = {{settings.MAX_TAG_LENGTH}}; - "each tag must be shorter than %(max_chars)d characters", + askbot['settings']['tagsAreRequired'] = {{ settings.TAGS_ARE_REQUIRED|as_js_bool }} + askbot['settings']['maxTagLength'] = {{ settings.MAX_TAG_LENGTH }}; askbot['messages']['maxTagLength'] = "{% trans max_chars = settings.MAX_TAG_LENGTH %}each tag must be shorter that {{max_chars}} character{% pluralize %}each tag must be shorter than {{max_chars}} characters{% endtrans %}"; - askbot['settings']['maxTagsPerPost'] = {{settings.MAX_TAGS_PER_POST}}; + askbot['settings']['maxTagsPerPost'] = {{ settings.MAX_TAGS_PER_POST }}; askbot['messages']['maxTagsPerPost'] = "{% trans tag_count = settings.MAX_TAGS_PER_POST %}please use {{tag_count}} tag{% pluralize %}please use {{tag_count}} tags or less{% endtrans %}"; askbot['messages']['tagLimits'] = "{% trans tag_count=settings.MAX_TAGS_PER_POST, max_chars=settings.MAX_TAG_LENGTH %}please use up to {{tag_count}} tags, less than {{max_chars}} characters each{% endtrans %}"; askbot['urls']['upload'] = '{% url "upload" %}'; - askbot['settings']['minTitleLength'] = {{settings.MIN_TITLE_LENGTH}}; - askbot['settings']['minQuestionBodyLength'] = {{settings.MIN_QUESTION_BODY_LENGTH}}; - askbot['settings']['minAnswerBodyLength'] = {{settings.MIN_ANSWER_BODY_LENGTH}}; + askbot['settings']['minTitleLength'] = {{ settings.MIN_TITLE_LENGTH }}; + askbot['settings']['minQuestionBodyLength'] = {{ settings.MIN_QUESTION_BODY_LENGTH }}; + askbot['settings']['minAnswerBodyLength'] = {{ settings.MIN_ANSWER_BODY_LENGTH }}; askbot['settings']['tag_editor'] = '{{ tag_editor_settings|escapejs }}'; </script> diff --git a/askbot/templates/meta/html_head_javascript.html b/askbot/templates/meta/html_head_javascript.html index 306f325a..67f0ec88 100644 --- a/askbot/templates/meta/html_head_javascript.html +++ b/askbot/templates/meta/html_head_javascript.html @@ -1,25 +1,18 @@ <script type="text/javascript" src="{{"/js/modernizr.custom.js"|media }}"></script> -<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script> <script type="text/javascript"> var askbot = {}; askbot['data'] = {}; + askbot['data']['userIsAuthenticated'] = {{ request.user.is_authenticated()|as_js_bool }}; {% if request.user.is_authenticated() %} - askbot['data']['userIsAuthenticated'] = true; - askbot['data']['userId'] = {{request.user.id}}; + askbot['data']['userId'] = {{ request.user.id }}; askbot['data']['userName'] = '{{ request.user.username }}'; - askbot['data']['userIsAdminOrMod'] = {% if - request.user.is_administrator() - or request.user.is_moderator() - %}true{% else %}false{% endif %}; - askbot['data']['userIsAdmin'] = {% if - request.user.is_administrator() - %}true{% else %}false{% endif %}; - askbot['data']['userReputation'] = {{request.user.reputation}}; + askbot['data']['userIsAdminOrMod'] = {{ request.user.is_administrator()|as_js_bool }}; + askbot['data']['userIsAdmin'] = {{ request.user.is_administrator()|as_js_bool }}; + askbot['data']['userReputation'] = {{ request.user.reputation }}; {% else %} - askbot['data']['userIsAuthenticated'] = false; askbot['data']['userReputation'] = 0; {% endif %} - askbot['data']['maxCommentLength'] = {{settings.MAX_COMMENT_LENGTH}}; + askbot['data']['maxCommentLength'] = {{ settings.MAX_COMMENT_LENGTH }}; askbot['urls'] = {}; askbot['settings'] = {}; askbot['settings']['editorType'] = '{{ settings.EDITOR_TYPE }}'; @@ -32,4 +25,5 @@ {% endif %} askbot['messages'] = {}; </script> +<script type="text/javascript" src="{% url django.views.i18n.javascript_catalog %}"></script> {# avoid adding javascript here so that pages load faster #} diff --git a/askbot/templates/meta/html_head_stylesheets.html b/askbot/templates/meta/html_head_stylesheets.html index 23750239..a1bd0015 100644 --- a/askbot/templates/meta/html_head_stylesheets.html +++ b/askbot/templates/meta/html_head_stylesheets.html @@ -1,17 +1,18 @@ -{%if settings.GROUPS_ENABLED%} -<link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" /> -{% endif %} -{% if settings.ASKBOT_CSS_DEVEL == False %} - -<link href="{{"/style/style.css"|media }}" rel="stylesheet" type="text/css" /> +{% if settings.ASKBOT_CSS_DEVEL %} + <link href="{{"/style/style.less"|media }}" rel="stylesheet/less" type="text/css" /> + {{ skin.get_extra_css_link() }} + <script type="text/javascript" src="{{"/js/less.min.js"|media}}"></script> + <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" /> {% else %} -<link href="{{"/style/style.less"|media }}" rel="stylesheet/less" type="text/css" /> -<script type="text/javascript" src="{{"/js/less.min.js"|media}}"></script> + {% compress css %} + <link href="{{"/style/style.css"|media }}" rel="stylesheet" type="text/css" /> + {{ skin.get_extra_css_link() }} + <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" /> + {% endcompress %} {% endif %} -<link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" /> -{{ skin.get_extra_css_link() }} {% if settings.USE_CUSTOM_CSS %} - <link + {# can't compress yet because this comes from live settings #} + <link href="{% url "custom_css" %}?v={{settings.MEDIA_RESOURCE_REVISION}}" rel="stylesheet" type="text/css" diff --git a/askbot/templates/question.html b/askbot/templates/question.html index 5fcea3a9..98cb2502 100644 --- a/askbot/templates/question.html +++ b/askbot/templates/question.html @@ -8,7 +8,6 @@ {% block forestyle %} <link rel="canonical" href="{{settings.APP_URL|strip_path}}{{question.get_absolute_url()}}" /> <link rel="stylesheet" type="text/css" href="{{'/js/wmd/wmd.css'|media}}" /> - <link href="{{'/bootstrap/css/bootstrap.css'|media}}" rel="stylesheet" type="text/css" /> {% endblock %} {% block forejs %} <script type="text/javascript"> @@ -151,6 +150,14 @@ if (flags.length > 0) { removeNode(flags[0]); } + var closeBtn = findChildrenByClassName(controls, 'question-close'); + if ( + closeBtn.length === 1 && + data['userReputation'] < + {{ settings.MIN_REP_TO_CLOSE_OTHERS_QUESTIONS }} + ) { + removeNode(closeBtn[0]); + } if (//maybe remove "edit" button data['userReputation'] < {{settings.MIN_REP_TO_EDIT_OTHERS_POSTS}} @@ -258,9 +265,9 @@ </script> {% endblock %} {% block content %} - <div> - {{ settings.QUESTION_PAGE_TOP_BANNER|safe }} - </div> + {% if settings.QUESTION_PAGE_TOP_BANNER %} + <div class="banner">{{ settings.QUESTION_PAGE_TOP_BANNER|safe }}</div> + {% endif %} {% if is_cacheable %} {% cache long_time "thread-content-html" thread.id %} {% include "question/content.html" %} @@ -273,10 +280,47 @@ {% include "question/sidebar.html" %} {% endblock %} {% block endjs %} + <script type='text/javascript'> + {# not compressable #} + {% if settings.ENABLE_MATHJAX or settings.MARKUP_CODE_FRIENDLY %} + var codeFriendlyMarkdown = true; + {% else %} + var codeFriendlyMarkdown = false; + {% endif %} + var maxCommentLength = {{settings.MAX_COMMENT_LENGTH}}; + askbot['urls']['postComments'] = '{% url post_comments %}'; + askbot['urls']['editComment'] = '{% url edit_comment %}'; + askbot['urls']['deleteComment'] = '{% url delete_comment %}'; + askbot['urls']['convertComment'] = '{% url comment_to_answer %}'; + askbot['urls']['getComment'] = '{% url get_comment %}'; + askbot['urls']['saveDraftAnswer'] = '{% url save_draft_answer %}'; + askbot['urls']['vote_url'] = '{% url vote question.id %}'; + askbot['urls']['user_signin'] = '{{ settings.LOGIN_URL }}'; + askbot['urls']['swap_question_with_answer'] = '{% url swap_question_with_answer %}'; + askbot['urls']['upvote_comment'] = '{% url upvote_comment %}'; + askbot['urls']['delete_post'] = '{% url delete_post %}'; + askbot['urls']['get_html_template'] = '{% url get_html_template %}'; + askbot['urls']['getGroupsList'] = '{% url get_groups_list %}'; + askbot['urls']['publishAnswer'] = '{% url publish_answer %}'; + askbot['data']['userIsThreadModerator'] = {{ user_is_thread_moderator|as_js_bool }}; + askbot['data']['questionAuthorId'] = {{ question.author_id }}; + askbot['data']['threadIsClosed'] = {{ thread.closed|as_js_bool }}; + askbot['data']['answersSortTab'] = '{{ tab_id }}'; + askbot['data']['questionId'] = {{ question.id }}; + askbot['data']['threadSlug'] = '{{ thread.title|slugify }}'; + askbot['messages']['addComment'] = '{% trans %}post a comment{% endtrans %}'; + askbot['settings']['saveCommentOnEnter'] = {{ settings.SAVE_COMMENT_ON_ENTER|as_js_bool }}; + askbot['settings']['tagSource'] = '{{ settings.TAG_SOURCE }}'; + askbot['settings']['enableSharingGoogle'] = {{ settings.ENABLE_SHARING_GOOGLE|as_js_bool }}; + </script> + {% include "meta/editor_data.html" %} + {% compress js %} {% include "question/javascript.html" %} {% if settings.TAG_SOURCE == 'category-tree' %} {% include "meta/category_tree_js.html" %} {% endif %} + {% include "question/custom_javascript.html" ignore missing %} + {% endcompress %} {# <script type="text/javascript"> var messages = askbot['messages']; diff --git a/askbot/templates/question/answer_controls.html b/askbot/templates/question/answer_controls.html index c7d3c4d9..21aafe47 100644 --- a/askbot/templates/question/answer_controls.html +++ b/askbot/templates/question/answer_controls.html @@ -67,6 +67,7 @@ <input type="hidden" name="answer_id" id="id_answer_id" value="{{answer.id}}"/> <input type="submit" + class="link" value="{% trans %}repost as a question comment{% endtrans %}" /> </form> @@ -80,6 +81,7 @@ <input type="hidden" name="answer_id" value="{{ answer.id }}"/> <input type="submit" + class="link" value="{% trans %}repost as a comment under the older answer{% endtrans %}" /> </form> diff --git a/askbot/templates/question/content.html b/askbot/templates/question/content.html index 7efc1d54..467f0217 100644 --- a/askbot/templates/question/content.html +++ b/askbot/templates/question/content.html @@ -13,7 +13,7 @@ {% for answer in answers %} {% if answers|length > 1 and loop.index == 2 %} - {{ settings.QUESTION_PAGE_ANSWER_BANNER|safe }} + <div class="banner">{{ settings.QUESTION_PAGE_ANSWER_BANNER|safe }}</div> {% endif %} {% include "question/answer_card.html" %} {% endfor %} @@ -27,7 +27,7 @@ {# buttons below cannot be cached yet #} {% if user_already_gave_answer %} <a - class="submit" + class="button submit" href="{% url "edit_answer" previous_answer.id %}" >{% trans %}Edit Your Previous Answer{% endtrans %}</a> <span>{% trans %}(only one answer per question is allowed){% endtrans %}</span> diff --git a/askbot/templates/question/javascript.html b/askbot/templates/question/javascript.html index edd7ead7..d32e14c5 100644 --- a/askbot/templates/question/javascript.html +++ b/askbot/templates/question/javascript.html @@ -1,66 +1,44 @@ <script type='text/javascript' src='{{"/js/editor.js"|media}}'></script> -<script type='text/javascript'> - {% if settings.ENABLE_MATHJAX or settings.MARKUP_CODE_FRIENDLY %} - var codeFriendlyMarkdown = true; - {% else %} - var codeFriendlyMarkdown = false; - {% endif %} - var maxCommentLength = {{settings.MAX_COMMENT_LENGTH}}; - askbot['urls']['postComments'] = '{% url post_comments %}'; - askbot['urls']['editComment'] = '{% url edit_comment %}'; - askbot['urls']['deleteComment'] = '{% url delete_comment %}'; - askbot['urls']['convertComment'] = '{% url comment_to_answer %}'; - askbot['urls']['getComment'] = '{% url get_comment %}'; - askbot['urls']['saveDraftAnswer'] = '{% url save_draft_answer %}'; - askbot['urls']['vote_url'] = '{% url vote question.id %}'; - askbot['urls']['user_signin'] = '{{ settings.LOGIN_URL }}'; - askbot['urls']['swap_question_with_answer'] = '{% url swap_question_with_answer %}'; - askbot['urls']['upvote_comment'] = '{% url upvote_comment %}'; - askbot['urls']['delete_post'] = '{% url delete_post %}'; - askbot['urls']['get_html_template'] = '{% url get_html_template %}'; - askbot['urls']['getGroupsList'] = '{% url get_groups_list %}'; - askbot['urls']['publishAnswer'] = '{% url publish_answer %}'; - askbot['data']['userIsThreadModerator'] = {% if user_is_thread_moderator %}true{% else %}false{% endif %}; - askbot['messages']['addComment'] = '{% trans %}post a comment{% endtrans %}'; - {% if settings.SAVE_COMMENT_ON_ENTER %} - askbot['settings']['saveCommentOnEnter'] = true; - {% else %} - askbot['settings']['saveCommentOnEnter'] = false; - {% endif %} - askbot['settings']['tagSource'] = '{{ settings.TAG_SOURCE }}'; -</script> <script type="text/javascript" src='{{"/bootstrap/js/bootstrap.js"|media}}'></script> -{% if settings.EDITOR_TYPE == 'markdown' %} - <script type='text/javascript' src='{{"/js/wmd/showdown.js"|media}}'></script> - <script type='text/javascript' src='{{"/js/wmd/wmd.js"|media}}'></script> -{% endif %} +<script type='text/javascript' src='{{"/js/wmd/showdown.js"|media}}'></script> +<script type='text/javascript' src='{{"/js/wmd/wmd.js"|media}}'></script> <script type='text/javascript' src='{{"/js/jquery.validate.min.js"|media}}'></script> <script type='text/javascript' src='{{"/js/post.js"|media}}'></script> <script type="text/javascript"> // define reputation needs for comments - var repNeededForComments = 50; $(document).ready(function(){ $("#nav_questions").attr('className',"on"); - var answer_sort_tab = "{{ tab_id }}"; - $("#" + answer_sort_tab).attr('className',"on"); + $("#" + askbot['data']['answersSortTab']).attr('className',"on"); - Vote.init({{ question.id }}, '{{ thread.title|slugify }}', '{{ question.author_id }}','{{ request.user.id }}'); + Vote.init( + askbot['data']['questionId'], + askbot['data']['threadSlug'], + askbot['data']['questionAuthorId'], + askbot['data']['userId'] + ); - {% if not thread.closed and request.user.is_authenticated %}initEditor();{% endif %} + if ((askbot['data']['threadIsClosed'] === false) && askbot['data']['userIsAuthenticated']) { + initEditor(); + } lanai.highlightSyntax(); - $('#btLogin').bind('click', function(){window.location.href='{{ settings.LOGIN_URL }}'; } ) + $('#btLogin').bind('click', function(){ + window.location.href='{{ settings.LOGIN_URL }}'; + }); if (window.location.hash === 'fmanswer'){ $('#fmanswer textarea').focus(); } - {% if settings.ENABLE_SHARING_GOOGLE %}$.getScript("//apis.google.com/js/plusone.js"){% endif %} - {% if request.user.id == question.author_id %} + if (askbot['settings']['enableSharingGoogle']) { + $.getScript("//apis.google.com/js/plusone.js"); + } + + if (askbot['data']['userId'] === askbot['data']['questionAuthorId']) { $("#fmanswer_button").click(function() { $("#fmanswer").show(); $("#fmanswer_button").hide(); }); - {%endif%} + } if (askbot['data']['userIsAuthenticated']) { var draftHandler = new DraftAnswer(); @@ -76,7 +54,9 @@ if (id_value != ""){ var previous_color = $(id_value).css('background-color'); $(id_value).css('backgroundColor', '#FFF8C6'); - $(id_value).animate({backgroundColor: '#ff7f2a'}, 1000).animate({backgroundColor: '#FFF8C6'}, 1000, function(){ + $(id_value).animate( + {backgroundColor: '#ff7f2a'}, 1000 + ).animate({backgroundColor: '#FFF8C6'}, 1000, function(){ $(id_value).css('backgroundColor', previous_color); }); } @@ -105,4 +85,3 @@ ); } </script> -{% include "meta/editor_data.html" %} diff --git a/askbot/templates/question/new_answer_form.html b/askbot/templates/question/new_answer_form.html index bc51f44a..f9559c4d 100644 --- a/askbot/templates/question/new_answer_form.html +++ b/askbot/templates/question/new_answer_form.html @@ -10,7 +10,7 @@ {% if request.user.is_anonymous() and settings.ALLOW_POSTING_BEFORE_LOGGING_IN == False %} {% if not thread.closed %} <a - class="submit" + class="button submit" href="{{settings.LOGIN_URL}}?next={% url question question.id %}" >{% trans %}Login/Signup to Answer{% endtrans %}</a> {% endif %} diff --git a/askbot/templates/question/sidebar.html b/askbot/templates/question/sidebar.html index 905ce781..17820096 100644 --- a/askbot/templates/question/sidebar.html +++ b/askbot/templates/question/sidebar.html @@ -173,6 +173,8 @@ {#% endcache %#} {% endif %} -<div class="box"> - {{ settings.SIDEBAR_QUESTION_FOOTER }} -</div> +{% if settings.SIDEBAR_QUESTION_FOOTER %} + <div class="box"> + {{ settings.SIDEBAR_QUESTION_FOOTER }} + </div> +{% endif %} diff --git a/askbot/templates/question_edit.html b/askbot/templates/question_edit.html index 7cf1c143..1aaa972c 100644 --- a/askbot/templates/question_edit.html +++ b/askbot/templates/question_edit.html @@ -54,8 +54,8 @@ </div> {% endif %} </div> - <input id="edit_post_form_submit_button" type="submit" value="{% trans %}Save edit{% endtrans %}" class="submit" /> - <input type="button" value="{% trans %}Cancel{% endtrans %}" class="submit" onclick="history.back(-1);" /> + <input id="edit_post_form_submit_button" type="submit" value="{% trans %}Save edit{% endtrans %}" class="large submit" /> + <input type="button" value="{% trans %}Cancel{% endtrans %}" class="large submit" onclick="history.back(-1);" /> </div> </form> diff --git a/askbot/templates/tags.html b/askbot/templates/tags.html index e9049e8e..e2ab2c93 100644 --- a/askbot/templates/tags.html +++ b/askbot/templates/tags.html @@ -1,43 +1,8 @@ {% extends "two_column_body.html" %} -{% import "macros.html" as macros %} <!-- tags.html --> {% block title %}{% spaceless %}{% trans %}Tags{% endtrans %}{% endspaceless %}{% endblock %} {% block content %} -<!-- Tabs --> -{% include "tags/header.html" %} -{% if tag_list_type == 'list' %} - {% if not tags.object_list %} - <span>{% trans %}Nothing found{% endtrans %}</span> - {% endif %} - {% if tags.object_list %} - <div class='clearfix'></div> - <ul class='tags'> - {% for tag in tags.object_list %} - <li> - {{ macros.tag_widget( - tag = tag.name, - html_tag = 'div', - truncate_long_tag = True, - extra_content = '<span class="tag-number">× ' ~ - tag.used_count|intcomma ~ '</span>' - ) - }} - </li> - {% endfor %} - </ul> - <div class="clean"></div> - <div class="pager"> - {{macros.paginator(paginator_context)}} - </div> - {% endif %} -{% else %} - <div class="clearfix"></div> - {% if not tags %} - <span>{% trans %}Nothing found{% endtrans %}</span> - {% endif %} - {{ macros.tag_cloud(tags = tags, font_sizes = font_size, search_state = search_state) }} -{% endif %} - +{% include "tags/content.html" %} {% endblock %} {% block endjs %} <script type="text/javascript"> @@ -49,7 +14,9 @@ Hilite.elementid = "searchtags"; Hilite.debug_referrer = location.href; }); + askbot['data']['tagSearchPromptText'] = "{% trans %}search for tags{% endtrans %}"; /*]]>*/ </script> + {% include "tags/custom_javascript.httml" ignore missing %} {% endblock %} <!-- end tags.html --> diff --git a/askbot/templates/tags/content.html b/askbot/templates/tags/content.html new file mode 100644 index 00000000..8567c274 --- /dev/null +++ b/askbot/templates/tags/content.html @@ -0,0 +1,34 @@ +{% import "macros.html" as macros %} +{% include "tags/header.html" %} +{% if tag_list_type == 'list' %} + {% if not tags.object_list %} + <span>{% trans %}Nothing found{% endtrans %}</span> + {% endif %} + {% if tags.object_list %} + <div class='clearfix'></div> + <ul class='tags'> + {% for tag in tags.object_list %} + <li> + {{ macros.tag_widget( + tag=tag.name, + html_tag='div', + truncate_long_tag=True, + extra_content='<span class="tag-number">× ' ~ + tag.used_count|intcomma ~ '</span>' + ) + }} + </li> + {% endfor %} + </ul> + <div class="clean"></div> + <div class="pager"> + {{macros.paginator(paginator_context)}} + </div> + {% endif %} +{% else %} + <div class="clearfix"></div> + {% if not tags %} + <span>{% trans %}Nothing found{% endtrans %}</span> + {% endif %} + {{ macros.tag_cloud(tags=tags, font_sizes=font_size, search_state=search_state) }} +{% endif %} diff --git a/askbot/templates/tags/form_bulk_tag_subscription.html b/askbot/templates/tags/form_bulk_tag_subscription.html index d588cfaf..95168e45 100644 --- a/askbot/templates/tags/form_bulk_tag_subscription.html +++ b/askbot/templates/tags/form_bulk_tag_subscription.html @@ -9,7 +9,7 @@ <form action="." method="POST" accept-charset="utf-8"> <table border="0"> {{form.as_table()}} -<tr><td colspan='2' style='text-align: right;'><input type="submit" class="submit" value="Save"></td></tr> +<tr><td/><td><input type="submit" class="submit" value="Save"></td></tr> </table> </form> {% endblock %} diff --git a/askbot/templates/tags/header.html b/askbot/templates/tags/header.html index 0832300e..37c16af8 100644 --- a/askbot/templates/tags/header.html +++ b/askbot/templates/tags/header.html @@ -1,9 +1,10 @@ <div id="content-header"> + {% set tag_query = stag|escape %} {% if page_title %} <h1 class="section-title">{{ page_title }}</h1> {% else %} {% if stag %} - <h1 class="section-title">{% trans %}Tags, matching "{{ stag }}"{% endtrans %}</h1> + <h1 class="section-title">{% trans %}Tags, matching "{{ tag_query }}"{% endtrans %}</h1> {% else %} <h1 class="section-title">{% trans %}Tags{% endtrans %}</h1> {% endif %} @@ -13,13 +14,13 @@ <span class="label">{% trans %}Sort by »{% endtrans %}</span> <a id="sort_name" - href="{% url tags %}?sort=name" + href="{% url tags %}?sort=name{% if tag_query %}&query={{ tag_query }}{% endif %}" {% if tab_id == 'name' %}class="on"{% endif %} title="{% trans %}sorted alphabetically{% endtrans %}" ><span>{% trans %}by name{% endtrans %}</span></a> <a id="sort_used" - href="{% url tags %}?sort=used" + href="{% url tags %}?sort=used{% if tag_query %}&query={{ tag_query }}{% endif %}" {% if tab_id == 'used' %}class="on"{% endif %} title="{% trans %}sorted by frequency of tag use{% endtrans %}" ><span>{% trans %}by popularity{% endtrans %}</span></a> diff --git a/askbot/templates/user_inbox/group_join_requests.html b/askbot/templates/user_inbox/group_join_requests.html index 2defe5e1..c4c4d29d 100644 --- a/askbot/templates/user_inbox/group_join_requests.html +++ b/askbot/templates/user_inbox/group_join_requests.html @@ -22,7 +22,6 @@ /> <input type="hidden" name="action" value="approve"/> <input - class="btn" type="submit" value="{% trans %}Approve{% endtrans %}" /> @@ -38,7 +37,6 @@ /> <input type="hidden" name="action" value="deny"/> <input - class="btn" type="submit" value="{% trans %}Deny{% endtrans %}" /> diff --git a/askbot/templates/widgets/ask_button.html b/askbot/templates/widgets/ask_button.html index e202b110..f8ea82bd 100644 --- a/askbot/templates/widgets/ask_button.html +++ b/askbot/templates/widgets/ask_button.html @@ -4,6 +4,7 @@ {% endif %} <a id="askButton" + class="button" href="{{ search_state.full_ask_url() }}{% if group %}{% if '?' in search_state.full_ask_url() %}&{% else %}?{% endif %}group_id={{ group.id }}{% endif %}" >{% if group %}{% trans %}Ask the Group{% endtrans %}{% else %}{% trans %}Ask Your Question{% endtrans %}{% endif %}</a> {% endif %} diff --git a/askbot/templates/widgets/footer.html b/askbot/templates/widgets/footer.html index 75721e50..e57aad99 100644 --- a/askbot/templates/widgets/footer.html +++ b/askbot/templates/widgets/footer.html @@ -53,7 +53,7 @@ {% endspaceless %} </div> <div class="powered-link"> - <a href="http://askbot.org" target="_blank"> + <a href="http://askbot.com" target="_blank"> Powered by Askbot version {{settings.ASKBOT_VERSION}} </a> </div> diff --git a/askbot/templates/widgets/scope_nav.html b/askbot/templates/widgets/scope_nav.html index b68d899c..254c3b48 100644 --- a/askbot/templates/widgets/scope_nav.html +++ b/askbot/templates/widgets/scope_nav.html @@ -1,17 +1,33 @@ +{% set need_scope_links = ( + settings.ALL_SCOPE_ENABLED|to_int + + settings.UNANSWERED_SCOPE_ENABLED|to_int + + (request.user.is_authenticated() and settings.FOLLOWED_SCOPE_ENABLED)|to_int + > 1 + ) +%} <div id="scopeNav"> -{% if active_tab != "ask" %} - {% if not search_state %} {# get empty SearchState() if there's none #} - {% set search_state=search_state|get_empty_search_state %} +{% if need_scope_links %} + {% if active_tab != "ask" %} + {% if not search_state %} {# get empty SearchState() if there's none #} + {% set search_state=search_state|get_empty_search_state %} + {% endif %} + {% if settings.ALL_SCOPE_ENABLED %} + <a class="scope-selector {% if scope == 'all' %}on{% endif %}" + href="{{ search_state.change_scope('all').full_url() }}" + title="{% trans %}see all questions{% endtrans %}">{% trans %}ALL{% endtrans %}</a> + {% endif %} + {% if settings.UNANSWERED_SCOPE_ENABLED %} + <a class="scope-selector {% if scope == 'unanswered' %}on{% endif %}" + href="{{ search_state.change_scope('unanswered').change_sort('answers-asc').full_url() }}" + title="{% trans %}see unanswered questions{% endtrans %}">{% trans %}UNANSWERED{% endtrans %}</a> + {% endif %} + {% if request.user.is_authenticated() and settings.FOLLOWED_SCOPE_ENABLED %} + <a class="scope-selector {% if scope == 'followed' %}on{% endif %}" + href="{{ search_state.change_scope('followed').full_url() }}" + title="{% trans %}see your followed questions{% endtrans %}">{% trans %}FOLLOWED{% endtrans %}</a> + {% endif %} + {% else %} + <div class="scope-selector ask-message">{% trans %}Please ask your question here{% endtrans %}</div> {% endif %} - <a class="scope-selector {% if scope == 'all' %}on{% endif %}" - href="{{ search_state.change_scope('all').full_url() }}" title="{% trans %}see all questions{% endtrans %}">{% trans %}ALL{% endtrans %}</a> - <a class="scope-selector {% if scope == 'unanswered' %}on{% endif %}" - href="{{ search_state.change_scope('unanswered').change_sort('answers-asc').full_url() }}" title="{% trans %}see unanswered questions{% endtrans %}">{% trans %}UNANSWERED{% endtrans %}</a> - {% if request.user.is_authenticated() %} - <a class="scope-selector {% if scope == 'favorite' %}on{% endif %}" - href="{{ search_state.change_scope('favorite').full_url() }}" title="{% trans %}see your followed questions{% endtrans %}">{% trans %}FOLLOWED{% endtrans %}</a> - {% endif %} -{% else %} - <div class="scope-selector ask-message">{% trans %}Please ask your question here{% endtrans %}</div> {% endif %} </div> diff --git a/askbot/templates/widgets/search_bar.html b/askbot/templates/widgets/search_bar.html index 8c485c73..1ec4ee81 100644 --- a/askbot/templates/widgets/search_bar.html +++ b/askbot/templates/widgets/search_bar.html @@ -1,23 +1,33 @@ {% if active_tab != "ask" %} {% spaceless %} -<div id="searchBar" {% if query %}class="cancelable"{% endif %}> +<div + id="searchBar" + class="{% if query %}cancelable{% endif %}" +> {# url action depends on which tab is active #} - {% if active_tab == "tags" %} - <input type="hidden" name="t" value="tag"/> - {% else %} - {% if active_tab == "users" %} - <input type="hidden" name="t" value="user"/> - {% endif %} - {% endif %} - {# class was searchInput #} - <input - class="searchInput" - type="text" - autocomplete="off" - value="{{ query|default_if_none('') }}" - name="query" - id="keywords" - /> + {% if active_tab == "tags" %} + <input type="hidden" name="t" value="tag"/> + {% set query=stag %} + {% elif active_tab == "users" %} + <input type="hidden" name="t" value="user"/> + {% endif %} + <input + class="searchInput" + type="text" + autocomplete="off" + value="{{ query|default_if_none('')|escape }}" + name="query" + id="keywords" + /> + <input type="submit" value="" name="search" class="searchBtn" /> + <input type="button" + value="X" + name="reset_query" + class="cancelSearchBtn" + {% if not query %}{# query is only defined by questions view (active_tab) #} + style="display: none;" + {% endif %} + /> </div> {% endspaceless %} {% endif %} diff --git a/askbot/templates/widgets/secondary_header.html b/askbot/templates/widgets/secondary_header.html index defd7148..f3f78fa7 100644 --- a/askbot/templates/widgets/secondary_header.html +++ b/askbot/templates/widgets/secondary_header.html @@ -2,6 +2,11 @@ <div id="secondaryHeader"> <div class="content-wrapper"> {# form is wrapping search buttons and the search bar inputs #} + {% set enabled_scopes_class = 'scopes-' + + '%s'|format(settings.ALL_SCOPE_ENABLED) + '-' + + '%s'|format(settings.UNANSWERED_SCOPE_ENABLED) + '-' + + '%s'|format((request.user.is_authenticated() and settings.FOLLOWED_SCOPE_ENABLED)) + %} <form {% if active_tab == "tags" %} action="{% url tags %}" @@ -10,6 +15,7 @@ {% else %} action="{% url questions %}" id="searchForm" {% endif %} + class="{{ enabled_scopes_class }}" method="get"> <div> {# @@ -26,16 +32,9 @@ three buttons below are in the opposite order because they are floated at the right #} - {% include "widgets/ask_button.html" %} - <input type="submit" value="" name="search" class="searchBtn" /> - <input type="button" - value="X" - name="reset_query" - class="cancelSearchBtn" - {% if not query %}{# query is only defined by questions view (active_tab) #} - style="display: none;" - {% endif %} - /> + {% if settings.ASK_BUTTON_ENABLED %} + {% include "widgets/ask_button.html" %} + {% endif %} {# clears button floats #} <div class="clearfix"></div> </div> diff --git a/askbot/templates/widgets/tag_selector.html b/askbot/templates/widgets/tag_selector.html index 7c6fe92e..ba304d2c 100644 --- a/askbot/templates/widgets/tag_selector.html +++ b/askbot/templates/widgets/tag_selector.html @@ -14,6 +14,7 @@ "remove '%(tag_name)s' from the list of interesting tags"| format(tag_name = tag_name) #} + <div class="clearfix"></div> <div class="inputs"> <input id="interestingTagInput" autocomplete="off" type="text"/> <input id="interestingTagAdd" type="submit" value="{% trans %}add{% endtrans %}"/> @@ -49,6 +50,7 @@ "remove '%(tag_name)s' from the list of ignored tags"| format(tag_name = tag_name) #} + <div class="clearfix"></div> <div class="inputs"> <input id="subscribedTagInput" autocomplete="off" type="text"/> <input id="subscribedTagAdd" type="submit" value="{% trans %}add{% endtrans%}"/> diff --git a/askbot/templatetags/extra_filters_jinja.py b/askbot/templatetags/extra_filters_jinja.py index e927ccbf..6fd12aab 100644 --- a/askbot/templatetags/extra_filters_jinja.py +++ b/askbot/templatetags/extra_filters_jinja.py @@ -39,10 +39,20 @@ def add_tz_offset(datetime_object): return str(datetime_object) + ' ' + TIMEZONE_STR @register.filter +def as_js_bool(some_object): + if bool(some_object): + return 'true' + return 'false' + +@register.filter def is_current_language(lang): return lang == django_get_language() @register.filter +def to_int(value): + return int(value) + +@register.filter def safe_urlquote(text, quote_plus = False): if quote_plus: return urllib.quote_plus(text.encode('utf8')) diff --git a/askbot/tests/db_api_tests.py b/askbot/tests/db_api_tests.py index 91c25867..8d775fd0 100644 --- a/askbot/tests/db_api_tests.py +++ b/askbot/tests/db_api_tests.py @@ -3,6 +3,7 @@ functions that happen on behalf of users e.g. ``some_user.do_something(...)`` """ +from bs4 import BeautifulSoup from django.core import exceptions from django.core.urlresolvers import reverse from django.test.client import Client @@ -667,3 +668,35 @@ class GroupTests(AskbotTestCase): self.assertEqual(acts[0].recipients.count(), 1) recipient = acts[0].recipients.all()[0] self.assertEqual(recipient, mod) + +class LinkPostingTests(AskbotTestCase): + + def assert_no_link(self, html): + soup = BeautifulSoup(html) + links = soup.findAll('a') + self.assertEqual(len(links), 0) + + def assert_has_link(self, html, url): + soup = BeautifulSoup(html) + links = soup.findAll('a') + self.assertTrue(len(links) > 0) + self.assertEqual(links[0]['href'], url) + + @with_settings( + EDITOR_TYPE='markdown', + MIN_REP_TO_SUGGEST_LINK=5, + MIN_REP_TO_INSERT_LINK=30 + ) + def test_admin_can_help_low_rep_user_insert_link(self): + #create a low rep user + low = self.create_user('low', reputation=10) + #create an admin + admin = self.create_user('admin', status='d') + #low re user posts a question with a link + text = 'hello, please read http://wikipedia.org' + question = self.post_question(user=low, body_text=text) + self.assert_no_link(question.html) + self.edit_question(user=admin, question=question, body_text=text + ' ok') + self.assert_has_link(question.html, 'http://wikipedia.org') + + diff --git a/askbot/tests/email_alert_tests.py b/askbot/tests/email_alert_tests.py index d11890a8..c9fe4b99 100644 --- a/askbot/tests/email_alert_tests.py +++ b/askbot/tests/email_alert_tests.py @@ -738,7 +738,7 @@ class FeedbackTests(utils.AskbotTestCase): } response = client.post(reverse('feedback'), data) self.assertEquals(response.status_code, 200) - self.assertEquals(response.template.name, 'feedback.html') + self.assertEquals(response.templates[0].name, 'feedback.html') def test_mail_moderators(self): """tests askbot.mail_moderators() diff --git a/askbot/tests/page_load_tests.py b/askbot/tests/page_load_tests.py index c4ee8554..ef43ebf8 100644 --- a/askbot/tests/page_load_tests.py +++ b/askbot/tests/page_load_tests.py @@ -256,7 +256,7 @@ class PageLoadTestCase(AskbotTestCase): template='main_page.html', ) self.try_url( - url_name=reverse('questions') + SearchState.get_empty().change_scope('favorite').query_string(), + url_name=reverse('questions') + SearchState.get_empty().change_scope('followed').query_string(), plain_url_passed=True, status_code=status_code, @@ -724,7 +724,9 @@ class CommandViewTests(AskbotTestCase): def test_load_object_description_fails(self): response = self.client.get(reverse('load_object_description')) - self.assertEqual(response.status_code, 404)#bad request + soup = BeautifulSoup(response.content) + title = soup.find_all('h1')[0].contents[0] + self.assertEqual(title, 'Page not found') def test_set_tag_filter_strategy(self): user = self.create_user('someuser') diff --git a/askbot/tests/search_state_tests.py b/askbot/tests/search_state_tests.py index 18f5eb36..27622629 100644 --- a/askbot/tests/search_state_tests.py +++ b/askbot/tests/search_state_tests.py @@ -64,7 +64,7 @@ class SearchStateTests(AskbotTestCase): def test_edge_cases_1(self): ss = SearchState( - scope='favorite', # this is not a valid choice for non-logger users + scope='followed', # this is not a valid choice for non-logger users sort='age-desc', query=' alfa', tags='miki, mini', @@ -83,7 +83,7 @@ class SearchStateTests(AskbotTestCase): ) ss = SearchState( - scope='favorite', + scope='followed', sort='age-desc', query=' alfa', tags='miki, mini', @@ -93,11 +93,11 @@ class SearchStateTests(AskbotTestCase): user_logged_in=True ) self.assertEqual( - 'scope:favorite/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/', + 'scope:followed/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/', ss.query_string() ) self.assertEqual( - 'scope:favorite/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/', + 'scope:followed/sort:age-desc/query:alfa/tags:miki,mini/author:12/page:2/', ss.deepcopy().query_string() ) diff --git a/askbot/tests/utils.py b/askbot/tests/utils.py index ee3cd37e..141f229a 100644 --- a/askbot/tests/utils.py +++ b/askbot/tests/utils.py @@ -96,11 +96,12 @@ class AskbotTestCase(TestCase): def create_user( self, - username = 'user', - email = None, - notification_schedule = None, - date_joined = None, - status = 'a' + username='user', + email=None, + notification_schedule=None, + date_joined=None, + reputation=1, + status='a' ): """creates user with username, etc and makes the result accessible as @@ -116,11 +117,12 @@ class AskbotTestCase(TestCase): email = username + '@example.com' user_object = create_user( - username = username, - email = email, - notification_schedule = notification_schedule, - date_joined = date_joined, - status = status + username=username, + email=email, + notification_schedule=notification_schedule, + date_joined=date_joined, + status=status, + reputation=reputation ) setattr(self, username, user_object) diff --git a/askbot/views/context.py b/askbot/views/context.py index eeaf6002..2b9ef5ea 100644 --- a/askbot/views/context.py +++ b/askbot/views/context.py @@ -1,11 +1,13 @@ """functions, preparing parts of context for the templates in the various views""" +from django.conf import settings as django_settings from django.utils import simplejson from django.utils.translation import ugettext as _ from askbot.conf import settings as askbot_settings from askbot import const from askbot.const import message_keys as msg from askbot.models import GroupMembership +from askbot.utils.loading import load_module def get_for_tag_editor(): #data for the tag editor @@ -50,3 +52,9 @@ def get_for_inbox(user): 'group_join_requests_count': group_join_requests_count } +def get_extra(context_module_setting, request, data): + extra_context = getattr(django_settings, context_module_setting, None) + if extra_context: + extra_context_getter = load_module(extra_context) + return extra_context_getter(request, data) + return {} diff --git a/askbot/views/readers.py b/askbot/views/readers.py index ce92ded6..962e1dbb 100644 --- a/askbot/views/readers.py +++ b/askbot/views/readers.py @@ -238,47 +238,64 @@ def questions(request, **kwargs): 'feed_url': context_feed_url, } + extra_context = context.get_extra( + 'ASKBOT_QUESTIONS_PAGE_EXTRA_CONTEXT', + request, + template_data + ) + template_data.update(extra_context) + return render(request, 'main_page.html', template_data) def tags(request):#view showing a listing of available tags - plain list + #1) Get parameters. This normally belongs to form cleaning. + post_data = request.GET + sortby = post_data.get('sort', 'used') + try: + page = int(post_data.get('page', '1')) + except ValueError: + page = 1 + + if sortby == 'name': + order_by = 'name' + else: + order_by = '-used_count' + + query = post_data.get('query', '').strip() tag_list_type = askbot_settings.TAG_LIST_FORMAT - if tag_list_type == 'list': + #2) Get query set for the tags. + query_params = {'deleted': False} + if query != '': + query_params['name__icontains'] = query - stag = "" - is_paginated = True - sortby = request.GET.get('sort', 'used') - try: - page = int(request.GET.get('page', '1')) - except ValueError: - page = 1 - - stag = request.GET.get("query", "").strip() - if stag != '': - objects_list = Paginator( - models.Tag.objects.filter( - deleted=False, - name__icontains=stag - ).exclude( - used_count=0 - ), - DEFAULT_PAGE_SIZE - ) - else: - if sortby == "name": - objects_list = Paginator(models.Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("name"), DEFAULT_PAGE_SIZE) - else: - objects_list = Paginator(models.Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("-used_count"), DEFAULT_PAGE_SIZE) + tags_qs = Tag.objects.filter(**query_params).exclude(used_count=0) + + tags_qs = tags_qs.order_by(order_by) + + #3) Start populating the template context. + data = { + 'active_tab': 'tags', + 'page_class': 'tags-page', + 'tag_list_type' : tag_list_type, + 'stag' : query, + 'tab_id' : sortby, + 'keywords' : query, + 'search_state': SearchState(*[None for x in range(7)]) + } + if tag_list_type == 'list': + #plain listing is paginated + objects_list = Paginator(tags_qs, DEFAULT_PAGE_SIZE) try: tags = objects_list.page(page) except (EmptyPage, InvalidPage): tags = objects_list.page(objects_list.num_pages) paginator_data = { - 'is_paginated' : is_paginated, + 'is_paginated' : (objects_list.num_pages > 1), 'pages': objects_list.num_pages, 'page': page, 'has_previous': tags.has_previous(), @@ -288,47 +305,24 @@ def tags(request):#view showing a listing of available tags - plain list 'base_url' : reverse('tags') + '?sort=%s&' % sortby } paginator_context = functions.setup_paginator(paginator_data) - data = { - 'active_tab': 'tags', - 'page_class': 'tags-page', - 'tags' : tags, - 'tag_list_type' : tag_list_type, - 'stag' : stag, - 'tab_id' : sortby, - 'keywords' : stag, - 'paginator_context' : paginator_context, - } - + data['paginator_context'] = paginator_context else: - - stag = "" - sortby = request.GET.get('sort', 'name') - - if request.method == "GET": - stag = request.GET.get("query", "").strip() - if stag != '': - tags = models.Tag.objects.filter(deleted=False, name__icontains=stag).exclude(used_count=0) - else: - if sortby == "name": - tags = models.Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("name") - else: - tags = models.Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("-used_count") - + #tags for the tag cloud are given without pagination + tags = tags_qs font_size = extra_tags.get_tag_font_size(tags) + data['font_size'] = font_size - data = { - 'active_tab': 'tags', - 'page_class': 'tags-page', - 'tags' : tags, - 'tag_list_type' : tag_list_type, - 'font_size' : font_size, - 'stag' : stag, - 'tab_id' : sortby, - 'keywords' : stag, - 'search_state': SearchState(*[None for x in range(7)]) - } + data['tags'] = tags + data.update(context.get_extra('ASKBOT_TAGS_PAGE_EXTRA_CONTEXT', request, data)) - return render(request, 'tags.html', data) + if request.is_ajax(): + template = get_template('tags/content.html') + template_context = RequestContext(request, data) + json_data = {'success': True, 'html': template.render(template_context)} + json_string = simplejson.dumps(json_data) + return HttpResponse(json_string, mimetype='application/json') + else: + return render(request, 'tags.html', data) @csrf.csrf_protect def question(request, id):#refactor - long subroutine. display question body, answers and comments @@ -614,6 +608,9 @@ def question(request, id):#refactor - long subroutine. display question body, an data.update(context.get_for_tag_editor()) + extra = context.get_extra('ASKBOT_QUESTION_PAGE_EXTRA_CONTEXT', request, data) + data.update(extra) + return render(request, 'question.html', data) def revisions(request, id, post_type = None): diff --git a/askbot/views/users.py b/askbot/views/users.py index 0305eb48..a1304dfb 100644 --- a/askbot/views/users.py +++ b/askbot/views/users.py @@ -726,6 +726,7 @@ def show_group_join_requests(request, user, context): ).order_by('-active_at') data = { 'active_tab':'users', + 'inbox_section': 'group-join-requests', 'page_class': 'user-profile-page', 'tab_name' : 'join_requests', 'tab_description' : _('group joining requests'), diff --git a/askbot/views/writers.py b/askbot/views/writers.py index ee10c1ab..4ad7ea7b 100644 --- a/askbot/views/writers.py +++ b/askbot/views/writers.py @@ -35,12 +35,14 @@ from django.views.decorators import csrf from askbot import exceptions as askbot_exceptions from askbot import forms from askbot import models +from askbot.models import signals from askbot.conf import settings as askbot_settings from askbot.utils import decorators from askbot.utils.forms import format_errors from askbot.utils.functions import diff_date from askbot.utils import url_utils from askbot.utils.file_utils import store_file +from askbot.utils.loading import load_module from askbot.views import context from askbot.templatetags import extra_filters_jinja as template_filters from askbot.importers.stackexchange import management as stackexchange#todo: may change @@ -120,8 +122,8 @@ def upload(request):#ajax upload file to a question or answer # 'file_url': file_url #}) #return HttpResponse(data, mimetype = 'application/json') - xml_template = "<result><msg><![CDATA[%s]]></msg><error><![CDATA[%s]]></error><file_url>%s</file_url></result>" - xml = xml_template % (result, error, file_url) + xml_template = "<result><msg><![CDATA[%s]]></msg><error><![CDATA[%s]]></error><file_url>%s</file_url><orig_file_name><![CDATA[%s]]></orig_file_name></result>" + xml = xml_template % (result, error, file_url, f.name) return HttpResponse(xml, mimetype="application/xml") @@ -479,6 +481,13 @@ def edit_question(request, id): def edit_answer(request, id): answer = get_object_or_404(models.Post, id=id) revision = answer.get_latest_revision() + + class_path = getattr(settings, 'ASKBOT_EDIT_ANSWER_FORM', None) + if class_path: + edit_answer_form_class = load_module(class_path) + else: + edit_answer_form_class = forms.EditAnswerForm + try: request.user.assert_can_edit_answer(answer) if request.method == "POST": @@ -493,18 +502,18 @@ def edit_answer(request, id): # Replace with those from the selected revision rev = revision_form.cleaned_data['revision'] revision = answer.revisions.get(revision = rev) - form = forms.EditAnswerForm( + form = edit_answer_form_class( answer, revision, user=request.user ) else: - form = forms.EditAnswerForm( - answer, - revision, - request.POST, - user=request.user - ) + form = edit_answer_form_class( + answer, + revision, + request.POST, + user=request.user + ) else: - form = forms.EditAnswerForm( + form = edit_answer_form_class( answer, revision, request.POST, user=request.user ) revision_form = forms.RevisionForm(answer, revision) @@ -522,12 +531,27 @@ def edit_answer(request, id): is_private=is_private, suppress_email=suppress_email ) + + signals.answer_edited.send(None, + answer=answer, + user=user, + form_data=form.cleaned_data + ) + return HttpResponseRedirect(answer.get_absolute_url()) else: revision_form = forms.RevisionForm(answer, revision) - form = forms.EditAnswerForm(answer, revision, user=request.user) + form = edit_answer_form_class(answer, revision, user=request.user) if request.user.can_make_group_private_posts(): form.initial['post_privately'] = answer.is_private() + + #gives a chance to set extra initial data on the form + signals.answer_before_editing.send(None, + answer=answer, + user=request.user, + form=form + ) + data = { 'page_class': 'edit-answer-page', 'active_tab': 'questions', @@ -555,7 +579,15 @@ def answer(request, id):#process a new answer """ question = get_object_or_404(models.Post, post_type='question', id=id) if request.method == "POST": - form = forms.AnswerForm(request.POST, user=request.user) + + custom_class_path = getattr(settings, 'ASKBOT_NEW_ANSWER_FORM', None) + if custom_class_path: + form_class = load_module(custom_class_path) + else: + form_class = forms.AnswerForm + + form = form_class(request.POST, user=request.user) + if form.is_valid(): wiki = form.cleaned_data['wiki'] text = form.cleaned_data['text'] @@ -581,6 +613,13 @@ def answer(request, id):#process a new answer is_private = is_private, timestamp = update_time, ) + + signals.new_answer_posted.send(None, + answer=answer, + user=user, + form_data=form.cleaned_data + ) + return HttpResponseRedirect(answer.get_absolute_url()) except askbot_exceptions.AnswerAlreadyGiven, e: request.user.message_set.create(message = unicode(e)) diff --git a/askbot_requirements.txt b/askbot_requirements.txt index a9a939b4..ea9dd005 100644 --- a/askbot_requirements.txt +++ b/askbot_requirements.txt @@ -20,6 +20,6 @@ python-openid pystache==0.3.1 pytz sanction -django-tinymce +django-tinymce==1.5.1b2 longerusername beautifulsoup4 diff --git a/askbot_requirements_dev.txt b/askbot_requirements_dev.txt index 1fbd064c..b88592cf 100644 --- a/askbot_requirements_dev.txt +++ b/askbot_requirements_dev.txt @@ -8,6 +8,8 @@ oauth2 Lamson markdown2 html5lib==0.90 +django-appconf +django-compressor==1.2 django-keyedcache django-threaded-multihost django-robots |