diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-08-10 23:49:00 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2010-08-10 23:49:00 -0400 |
commit | c94414116de4eec9d75013a7b4299f4f7ca78c9f (patch) | |
tree | 40d37101f68dd0d0b2fc72b024168ac973cda2dd | |
parent | 2d32a08751e699456128489cd2606c4aa015796a (diff) | |
download | askbot-c94414116de4eec9d75013a7b4299f4f7ca78c9f.tar.gz askbot-c94414116de4eec9d75013a7b4299f4f7ca78c9f.tar.bz2 askbot-c94414116de4eec9d75013a7b4299f4f7ca78c9f.zip |
improved error messages and made question restore work
-rw-r--r-- | askbot/auth.py | 79 | ||||
-rw-r--r-- | askbot/locale/en/LC_MESSAGES/django.mo | bin | 25398 -> 25465 bytes | |||
-rw-r--r-- | askbot/locale/en/LC_MESSAGES/django.po | 3602 | ||||
-rw-r--r-- | askbot/models/__init__.py | 138 | ||||
-rw-r--r-- | askbot/models/answer.py | 14 | ||||
-rw-r--r-- | askbot/models/question.py | 23 | ||||
-rw-r--r-- | askbot/models/repute.py | 4 | ||||
-rwxr-xr-x | askbot/skins/default/media/js/com.cnprog.post.js | 42 | ||||
-rw-r--r-- | askbot/skins/default/templates/question.html | 8 | ||||
-rw-r--r-- | askbot/skins/default/templates/questions.html | 36 | ||||
-rw-r--r-- | askbot/templatetags/extra_filters.py | 13 | ||||
-rw-r--r-- | askbot/tests/db_api_tests.py | 70 | ||||
-rw-r--r-- | askbot/views/readers.py | 18 | ||||
-rw-r--r-- | askbot/views/writers.py | 23 |
14 files changed, 2262 insertions, 1808 deletions
diff --git a/askbot/auth.py b/askbot/auth.py index 381143b5..83a26d48 100644 --- a/askbot/auth.py +++ b/askbot/auth.py @@ -18,24 +18,10 @@ import logging from askbot.conf import settings as askbot_settings -def can_lock_posts(user): - """Determines if a User can lock Questions or Answers.""" - return user.is_authenticated() and ( - user.reputation >= askbot_settings.MIN_REP_TO_LOCK_POSTS or - user.is_superuser) - def can_follow_url(user): """Determines if the URL link can be followed by Google search engine.""" return user.reputation >= askbot_settings.MIN_REP_TO_DISABLE_URL_NOFOLLOW -def can_accept_answer(user, question, answer): - if user.is_superuser: - return True - if user.is_authenticated(): - if question.author != answer.author and question.author == user: - return True - return False - # user preferences view permissions def is_user_self(request_user, target_user): return (request_user.is_authenticated() and request_user == target_user) @@ -364,68 +350,3 @@ def onDownVotedCanceled(vote, post, user, timestamp=None): reputation_type=5, reputation=user.reputation) reputation.save() - -#here timestamp is not used, I guess added for consistency -def onDeleteCanceled(post, user, timestamp=None): - post.deleted = False - post.deleted_by = None - post.deleted_at = None - post.save() - if isinstance(post, Answer): - Question.objects.update_answer_count(post.question) - elif isinstance(post, Question): - #todo: make sure that these tags actually exist - #some may have since been deleted for good - #or merged into others - for tag in list(post.tags.all()): - if tag.used_count == 1 and tag.deleted: - tag.deleted = False - tag.deleted_by = None - tag.deleted_at = None - tag.save() - -def onDeleted(post, user, timestamp=None): - if timestamp is None: - timestamp = datetime.datetime.now() - post.deleted = True - post.deleted_by = user - post.deleted_at = timestamp - post.save() - - if isinstance(post, Question): - for tag in list(post.tags.all()): - if tag.used_count == 1: - tag.deleted = True - tag.deleted_by = user - tag.deleted_at = timestamp - else: - tag.used_count = tag.used_count - 1 - tag.save() - - answers = post.answers.all() - if user == post.author: - if len(answers) > 0: - msg = _( - 'Your question and all of it\'s answers have been deleted' - ) - else: - msg = _('Your question has been deleted') - else: - if len(answers) > 0: - msg = _( - 'The question and all of it\'s answers have been deleted' - ) - else: - msg = _('The question has been deleted') - user.message_set.create(message=msg) - logging.debug('posted a message %s' % msg) - for answer in answers: - onDeleted(answer, user) - elif isinstance(post, Answer): - Question.objects.update_answer_count(post.question) - logging.debug('updated answer count to %d' % post.question.answer_count) - signals.delete_question_or_answer.send( - sender=post.__class__, - instance=post, - delete_by=user - ) diff --git a/askbot/locale/en/LC_MESSAGES/django.mo b/askbot/locale/en/LC_MESSAGES/django.mo Binary files differindex 25f26273..29699e7b 100644 --- a/askbot/locale/en/LC_MESSAGES/django.mo +++ b/askbot/locale/en/LC_MESSAGES/django.mo diff --git a/askbot/locale/en/LC_MESSAGES/django.po b/askbot/locale/en/LC_MESSAGES/django.po index 94b64b78..469a10b5 100644 --- a/askbot/locale/en/LC_MESSAGES/django.po +++ b/askbot/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-06-03 18:48-0400\n" +"POT-Creation-Date: 2010-08-10 18:09-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Evgeny Fadeev <evgeny.fadeev@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,605 +16,382 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: django_authopenid/forms.py:72 django_authopenid/views.py:134 -msgid "i-names are not supported" -msgstr "" - -#: django_authopenid/forms.py:135 -msgid "Account with this name already exists on the forum" -msgstr "" - -msgid "anonymous users cannot vote" -msgstr "sorry, anonymous users cannot vote " - -msgid "cannot flag message as offensive twice" -msgstr "You have flagged this question before and " -"cannot do it more than once" - -msgid "blocked users cannot flag posts" -msgstr "Sorry, since your account is blocked " -"you cannot flag posts as offensive" - -#, python-format -msgid "need > %(min_rep)s points to flag spam" -msgstr "Sorry, to flag posts as offensive a minimum " -"reputation of %(min_rep)s is required" - -#, python-format -msgid "%(max_flags_per_day)s exceeded" -msgstr "Sorry, you have exhausted the maximum number " -"of %(max_flags_per_day)s offensive flags per day." - -msgid "blocked users cannot post" -msgstr "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." - -msgid "suspended users cannot post" -msgstr "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." - -#, python-format -msgid ">%(points)s points required to upvote" -msgstr ">%(points)s points required to upvote " - -#, python-format -msgid ">%(points)s points required to downvote" -msgstr ">%(points)s points required to downvote " - -msgid "cannot vote for own posts" -msgstr "sorry, you cannot vote for your own posts" - -msgid "cannot revoke old vote" -msgstr "sorry, but older votes cannot be revoked" - -#: django_authopenid/forms.py:136 -msgid "can't have two logins to the same account yet, sorry." -msgstr "" - -#: django_authopenid/forms.py:158 -msgid "Please enter valid username and password (both are case-sensitive)." -msgstr "" - -#: django_authopenid/forms.py:161 django_authopenid/forms.py:211 -msgid "This account is inactive." -msgstr "" - -#: django_authopenid/forms.py:163 -msgid "Login failed." -msgstr "" - -#: django_authopenid/forms.py:165 -msgid "Please enter username and password" -msgstr "" - -#: django_authopenid/forms.py:167 -msgid "Please enter your password" -msgstr "" - -#: django_authopenid/forms.py:169 -msgid "Please enter user name" -msgstr "" - -#: django_authopenid/forms.py:207 -msgid "" -"Please enter a valid username and password. Note that " -"both fields are case-sensitive." -msgstr "" - -#: django_authopenid/forms.py:230 -msgid "Current password" -msgstr "" - -#: django_authopenid/forms.py:241 -msgid "" -"Old password is incorrect. Please enter the correct " -"password." -msgstr "" - -#: django_authopenid/forms.py:306 -msgid "Your user name (<i>required</i>)" -msgstr "" - -#: django_authopenid/forms.py:321 -msgid "Incorrect username." -msgstr "sorry, there is no such user name" - -#: django_authopenid/urls.py:23 django_authopenid/urls.py:24 -#: django_authopenid/urls.py:25 django_authopenid/urls.py:27 -#: fbconnect/urls.py:14 fbconnect/urls.py:15 fbconnect/urls.py:16 -msgid "signin/" -msgstr "" - -#: django_authopenid/urls.py:24 fbconnect/urls.py:15 fbconnect/urls.py:19 -msgid "newquestion/" -msgstr "" - -#: django_authopenid/urls.py:25 fbconnect/urls.py:16 fbconnect/urls.py:20 -msgid "newanswer/" -msgstr "" - -#: django_authopenid/urls.py:26 -msgid "signout/" -msgstr "" - -#: django_authopenid/urls.py:27 -msgid "complete/" -msgstr "" - -#: django_authopenid/urls.py:29 fbconnect/urls.py:18 fbconnect/urls.py:19 -#: fbconnect/urls.py:20 -msgid "register/" -msgstr "" - -#: django_authopenid/urls.py:30 -msgid "signup/" -msgstr "" - -#: django_authopenid/urls.py:32 -msgid "sendpw/" -msgstr "" - -#: django_authopenid/urls.py:33 django_authopenid/urls.py:37 -msgid "password/" -msgstr "" - -#: django_authopenid/urls.py:33 -msgid "confirm/" -msgstr "" - -#: django_authopenid/urls.py:38 django_authopenid/urls.py:39 -#: django_authopenid/urls.py:40 django_authopenid/urls.py:41 -msgid "email/" -msgstr "" - -#: django_authopenid/urls.py:38 -msgid "validate/" -msgstr "" - -#: django_authopenid/urls.py:39 -msgid "change/" -msgstr "" - -#: django_authopenid/urls.py:40 -msgid "sendkey/" -msgstr "" - -#: django_authopenid/urls.py:41 -msgid "verify/" -msgstr "" - -#: django_authopenid/urls.py:42 -msgid "openid/" -msgstr "" - -#: django_authopenid/urls.py:43 forum/urls.py:113 forum/urls.py:120 -msgid "delete/" -msgstr "" - -#: django_authopenid/urls.py:51 -msgid "external-login/forgot-password/" -msgstr "" - -#: django_authopenid/urls.py:54 -msgid "external-login/signup/" -msgstr "" - -#: django_authopenid/views.py:141 -#, python-format -msgid "OpenID %(openid_url)s is invalid" -msgstr "" - -#: django_authopenid/views.py:616 -msgid "Welcome email subject line" -msgstr "Welcome to the Q&A forum" - -#: django_authopenid/views.py:722 -msgid "Password changed." -msgstr "" - -#: django_authopenid/views.py:734 django_authopenid/views.py:740 -#, python-format -msgid "your email needs to be validated see %(details_url)s" -msgstr "" -"Your email needs to be validated. Please see details <a " -"id='validate_email_alert' href='%(details_url)s'>here</a>." - -#: django_authopenid/views.py:761 -msgid "Email verification subject line" -msgstr "Verification Email from Q&A forum" - -#: django_authopenid/views.py:852 -msgid "your email was not changed" -msgstr "" - -#: django_authopenid/views.py:900 django_authopenid/views.py:1058 -#, python-format -msgid "No OpenID %s found associated in our database" -msgstr "" - -#: django_authopenid/views.py:904 django_authopenid/views.py:1065 -#, python-format -msgid "The OpenID %s isn't associated to current user logged in" -msgstr "" - -#: django_authopenid/views.py:912 -msgid "Email Changed." -msgstr "" - -#: django_authopenid/views.py:990 -msgid "This OpenID is already associated with another account." -msgstr "" - -#: django_authopenid/views.py:995 -#, python-format -msgid "OpenID %s is now associated with your account." -msgstr "" - -#: django_authopenid/views.py:1068 -msgid "Account deleted." -msgstr "" - -#: django_authopenid/views.py:1120 -msgid "Request for new password" -msgstr "" - -#: django_authopenid/views.py:1134 -msgid "A new password and the activation link were sent to your email address." -msgstr "" - -#: django_authopenid/views.py:1166 -#, python-format -msgid "" -"Could not change password. Confirmation key '%s' is not " -"registered." -msgstr "" - -#: django_authopenid/views.py:1176 -msgid "" -"Can not change password. User don't exist anymore in our " -"database." -msgstr "" - -#: django_authopenid/views.py:1186 -#, python-format -msgid "Password changed for %s. You may now sign in." -msgstr "" - -#: forum/auth.py:528 +#: auth.py:395 msgid "Your question and all of it's answers have been deleted" msgstr "" -#: forum/auth.py:531 +#: auth.py:398 msgid "Your question has been deleted" msgstr "" -#: forum/auth.py:535 +#: auth.py:402 msgid "The question and all of it's answers have been deleted" msgstr "" -#: forum/auth.py:538 +#: auth.py:405 msgid "The question has been deleted" msgstr "" -#: forum/feed.py:22 +#: feed.py:22 msgid " - " msgstr "" -#: forum/feed.py:22 +#: feed.py:22 msgid "latest questions" msgstr "" -#: forum/forms.py:23 forum/skins/default/templates/answer_edit_tips.html:35 -#: forum/skins/default/templates/answer_edit_tips.html:39 -#: forum/skins/default/templates/question_edit_tips.html:32 -#: forum/skins/default/templates/question_edit_tips.html:37 +#: forms.py:47 skins/default/templates/answer_edit_tips.html:35 +#: skins/default/templates/answer_edit_tips.html:39 +#: skins/default/templates/question_edit_tips.html:32 +#: skins/default/templates/question_edit_tips.html:37 msgid "title" msgstr "" -#: forum/forms.py:24 +#: forms.py:48 msgid "please enter a descriptive title for your question" msgstr "" -#: forum/forms.py:29 +#: forms.py:53 msgid "title must be > 10 characters" msgstr "" -#: forum/forms.py:38 +#: forms.py:62 msgid "content" msgstr "" -#: forum/forms.py:44 +#: forms.py:68 msgid "question content must be > 10 characters" msgstr "" -#: forum/forms.py:53 forum/skins/default/templates/header.html:28 +#: forms.py:77 skins/default/templates/header.html:43 msgid "tags" msgstr "" -#: forum/forms.py:55 +#: forms.py:79 msgid "" "Tags are short keywords, with no spaces within. Up to five tags can be used." msgstr "" -#: forum/forms.py:62 forum/skins/default/templates/question_retag.html:39 +#: forms.py:86 skins/default/templates/question_retag.html:39 msgid "tags are required" msgstr "" -#: forum/forms.py:71 +#: forms.py:95 #, python-format msgid "please use %(tag_count)d tag or less" msgid_plural "please use %(tag_count)d tags or less" msgstr[0] "" msgstr[1] "" -#: forum/forms.py:80 +#: forms.py:104 #, 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] "" msgstr[1] "" -#: forum/forms.py:88 +#: forms.py:112 msgid "use-these-chars-in-tags" msgstr "" -#: forum/forms.py:98 -#: forum/skins/default/templates/post_contributor_info.html:7 -#: forum/skins/default/templates/question_summary_list_roll.html:26 -#: forum/skins/default/templates/question_summary_list_roll.html:38 +#: forms.py:122 skins/default/templates/post_contributor_info.html:7 +#: skins/default/templates/question_summary_list_roll.html:26 +#: skins/default/templates/question_summary_list_roll.html:38 msgid "community wiki" msgstr "" -#: forum/forms.py:99 +#: forms.py:123 msgid "" "if you choose community wiki option, the question and answer do not generate " "points and name of author will not be shown" msgstr "" -#: forum/forms.py:115 +#: forms.py:139 msgid "update summary:" msgstr "" -#: forum/forms.py:116 +#: forms.py:140 msgid "" "enter a brief summary of your revision (e.g. fixed spelling, grammar, " "improved style, this field is optional)" msgstr "" -#: forum/forms.py:119 -msgid "Automatically accept user's contributions for the email updates" +#: forms.py:153 +msgid "Enter number of points to add or subtract" +msgstr "" + +#: forms.py:167 const/__init__.py:217 +msgid "approved" +msgstr "" + +#: forms.py:168 const/__init__.py:218 +msgid "watched" +msgstr "" + +#: forms.py:169 const/__init__.py:219 +msgid "suspended" +msgstr "" + +#: forms.py:170 const/__init__.py:220 +msgid "blocked" +msgstr "" + +#: forms.py:172 const/__init__.py:216 +msgid "moderator" +msgstr "" + +#: forms.py:192 +msgid "Change status to" msgstr "" -#: forum/forms.py:210 +#: forms.py:219 +msgid "which one?" +msgstr "" + +#: forms.py:240 +msgid "Cannot change own status" +msgstr "" + +#: forms.py:246 +msgid "Cannot turn other user to moderator" +msgstr "" + +#: forms.py:253 +msgid "Cannot change status of another moderator" +msgstr "" + +#: forms.py:259 +#, python-format +msgid "If you wish to change %(username)s's status, " +msgstr "" + +#: forms.py:346 msgid "Your name:" msgstr "" -#: forum/forms.py:211 +#: forms.py:347 msgid "Email (not shared with anyone):" msgstr "" -#: forum/forms.py:212 +#: forms.py:348 msgid "Your message:" msgstr "" -#: forum/forms.py:295 +#: forms.py:431 msgid "this email does not have to be linked to gravatar" msgstr "" -#: forum/forms.py:297 +#: forms.py:433 msgid "Screen name" msgstr "" -#: forum/forms.py:298 +#: forms.py:434 msgid "Real name" msgstr "" -#: forum/forms.py:299 +#: forms.py:435 msgid "Website" msgstr "" -#: forum/forms.py:300 +#: forms.py:436 msgid "Location" msgstr "" -#: forum/forms.py:301 +#: forms.py:437 msgid "Date of birth" msgstr "" -#: forum/forms.py:301 +#: forms.py:437 msgid "will not be shown, used to calculate age, format: YYYY-MM-DD" msgstr "" -#: forum/forms.py:302 forum/skins/default/templates/account_settings.html:21 -#: forum/skins/default/templates/authopenid/settings.html:21 +#: forms.py:438 skins/default/templates/account_settings.html:21 +#: skins/default/templates/authopenid/settings.html:21 msgid "Profile" msgstr "" -#: forum/forms.py:333 forum/forms.py:334 +#: forms.py:469 forms.py:470 msgid "this email has already been registered, please use another one" msgstr "" -#: forum/forms.py:340 +#: forms.py:476 msgid "Choose email tag filter" msgstr "" -#: forum/forms.py:379 +#: forms.py:515 msgid "Asked by me" msgstr "" -#: forum/forms.py:382 +#: forms.py:518 msgid "Answered by me" msgstr "" -#: forum/forms.py:385 +#: forms.py:521 msgid "Individually selected" msgstr "" -#: forum/forms.py:388 +#: forms.py:524 msgid "Entire forum (tag filtered)" msgstr "" -#: forum/forms.py:392 +#: forms.py:528 msgid "Comments and posts mentioning me" msgstr "" -#: forum/forms.py:450 +#: forms.py:586 msgid "okay, let's try!" msgstr "" -#: forum/forms.py:451 +#: forms.py:587 msgid "no community email please, thanks" msgstr "no askbot email please, thanks" -#: forum/forms.py:455 +#: forms.py:591 msgid "please choose one of the options above" msgstr "" -#: forum/urls.py:37 +#: urls.py:38 msgid "upfiles/" msgstr "" -#: forum/urls.py:42 +#: urls.py:43 msgid "about/" msgstr "" -#: forum/urls.py:43 forum/conf/site_settings.py:75 +#: urls.py:44 conf/site_settings.py:75 msgid "faq/" msgstr "" -#: forum/urls.py:44 +#: urls.py:45 msgid "privacy/" msgstr "" -#: forum/urls.py:45 +#: urls.py:46 msgid "logout/" msgstr "" -#: forum/urls.py:47 forum/urls.py:52 forum/urls.py:57 forum/urls.py:120 +#: urls.py:48 urls.py:53 urls.py:58 urls.py:126 msgid "answers/" msgstr "" -#: forum/urls.py:47 forum/urls.py:102 forum/urls.py:113 forum/urls.py:120 +#: urls.py:48 urls.py:108 urls.py:119 urls.py:126 msgid "comments/" msgstr "" -#: forum/urls.py:52 forum/urls.py:72 forum/urls.py:166 -#: forum/skins/default/templates/user_info.html:47 +#: urls.py:53 urls.py:73 urls.py:167 skins/default/templates/user_info.html:33 msgid "edit/" msgstr "" -#: forum/urls.py:57 forum/urls.py:97 +#: urls.py:58 urls.py:103 msgid "revisions/" msgstr "" -#: forum/urls.py:62 forum/urls.py:67 forum/urls.py:72 forum/urls.py:77 -#: forum/urls.py:82 forum/urls.py:87 forum/urls.py:92 forum/urls.py:97 -#: forum/urls.py:102 forum/urls.py:113 +#: urls.py:63 urls.py:68 urls.py:73 urls.py:78 urls.py:83 urls.py:88 +#: urls.py:93 urls.py:98 urls.py:103 urls.py:108 urls.py:119 msgid "questions/" msgstr "" -#: forum/urls.py:67 forum_modules/books/urls.py:8 +#: urls.py:68 msgid "ask/" msgstr "" -#: forum/urls.py:77 +#: urls.py:78 +msgid "retag/" +msgstr "" + +#: urls.py:83 msgid "close/" msgstr "" -#: forum/urls.py:82 +#: urls.py:88 msgid "reopen/" msgstr "" -#: forum/urls.py:87 +#: urls.py:93 msgid "answer/" msgstr "" -#: forum/urls.py:92 +#: urls.py:98 msgid "vote/" msgstr "" -#: forum/urls.py:107 +#: urls.py:113 msgid "command/" msgstr "" -#: forum/urls.py:127 forum/views/readers.py:256 +#: urls.py:119 urls.py:126 deps/django_authopenid/urls.py:43 +msgid "delete/" +msgstr "" + +#: urls.py:133 views/readers.py:273 msgid "question/" msgstr "" -#: forum/urls.py:132 +#: urls.py:138 msgid "tags/" msgstr "" -#: forum/urls.py:137 forum/urls.py:143 +#: urls.py:143 urls.py:149 msgid "mark-tag/" msgstr "" -#: forum/urls.py:137 +#: urls.py:143 msgid "interesting/" msgstr "" -#: forum/urls.py:143 +#: urls.py:149 msgid "ignored/" msgstr "" -#: forum/urls.py:149 +#: urls.py:155 msgid "unmark-tag/" msgstr "" -#: forum/urls.py:155 forum/urls.py:166 forum/urls.py:171 +#: urls.py:161 urls.py:167 urls.py:172 msgid "users/" msgstr "" -#: forum/urls.py:160 -msgid "moderate-user/" -msgstr "" - -#: forum/urls.py:176 forum/urls.py:181 +#: urls.py:177 urls.py:182 msgid "badges/" msgstr "" -#: forum/urls.py:186 +#: urls.py:187 msgid "messages/" msgstr "" -#: forum/urls.py:186 +#: urls.py:187 msgid "markread/" msgstr "" -#: forum/urls.py:197 +#: urls.py:197 msgid "upload/" msgstr "" -#: forum/urls.py:198 +#: urls.py:198 msgid "search/" msgstr "" -#: forum/urls.py:199 +#: urls.py:199 msgid "feedback/" msgstr "" -#: forum/urls.py:200 +#: urls.py:200 setup_templates/settings.py:198 msgid "account/" msgstr "" -#: forum/conf/email.py:12 +#: conf/email.py:12 msgid "Email and email alert settings" msgstr "" -#: forum/conf/email.py:20 +#: conf/email.py:20 msgid "Maximum number of news entries in an email alert" msgstr "" -#: forum/conf/email.py:30 +#: conf/email.py:30 msgid "Default news notification frequency" msgstr "" -#: forum/conf/email.py:32 +#: conf/email.py:32 msgid "" "This option currently defines default frequency of emailed updates in the " "following five categories: questions asked by user, answered by user, " @@ -622,725 +399,1071 @@ msgid "" "posts mentioning the user and comment responses" msgstr "" -#: forum/conf/email.py:47 +#: conf/email.py:47 msgid "Require email verification before allowing to post" msgstr "" -#: forum/conf/email.py:48 +#: conf/email.py:48 msgid "" "Active email verification is done by sending a verification key in email" msgstr "" -#: forum/conf/email.py:57 +#: conf/email.py:57 msgid "Allow only one account per email address" msgstr "" -#: forum/conf/email.py:66 +#: conf/email.py:66 msgid "Fake email for anonymous user" msgstr "" -#: forum/conf/email.py:67 +#: conf/email.py:67 msgid "Use this setting to control gravatar for email-less user" msgstr "" -#: forum/conf/external_keys.py:11 +#: conf/external_keys.py:11 msgid "Keys to connect the site with external services like Facebook, etc." msgstr "" -#: forum/conf/external_keys.py:18 +#: conf/external_keys.py:18 msgid "Google site verification key" msgstr "" -#: forum/conf/external_keys.py:20 +#: conf/external_keys.py:20 #, python-format msgid "" "This key helps google index your site please obtain is at <a href=\"%" "(google_webmasters_tools_url)s\">google webmasters tools site</a>" msgstr "" -#: forum/conf/external_keys.py:34 +#: conf/external_keys.py:34 msgid "Google Analytics key" msgstr "" -#: forum/conf/external_keys.py:36 +#: conf/external_keys.py:36 #, python-format msgid "" "Obtain is at <a href=\"%(ga_site)s\">Google Analytics</a> site, if you wish " "to use Google Analytics to monitor your site" msgstr "" -#: forum/conf/external_keys.py:49 +#: conf/external_keys.py:49 msgid "Recaptcha private key" msgstr "" -#: forum/conf/external_keys.py:52 +#: conf/external_keys.py:52 msgid "" "Recaptcha is a tool that helps distinguish real people from annoying spam " "robots. Please get this and a public key at the <a href=\"http://recaptcha." "net\">recaptcha.net</a>" msgstr "" -#: forum/conf/external_keys.py:65 +#: conf/external_keys.py:65 msgid "Recaptcha public key" msgstr "" -#: forum/conf/external_keys.py:73 +#: conf/external_keys.py:73 msgid "Facebook public API key" msgstr "" -#: forum/conf/external_keys.py:76 +#: conf/external_keys.py:76 msgid "" "Facebook API key and Facebook secret allow to use Facebook Connect login " "method at your site. Please obtain these keys at <a href=\"http://www." "facebook.com/developers/createapp.php\">facebook create app</a> site" msgstr "" -#: forum/conf/external_keys.py:91 +#: conf/external_keys.py:91 msgid "Facebook secret key" msgstr "" -#: forum/conf/flatpages.py:10 +#: conf/flatpages.py:10 msgid "Flatpages - about, privacy policy, etc." msgstr "" -#: forum/conf/flatpages.py:17 -msgid "Text the Q&A forum About page (html format)" +#: conf/flatpages.py:17 +msgid "Text of the Q&A forum About page (html format)" msgstr "" -#: forum/conf/flatpages.py:20 +#: conf/flatpages.py:20 msgid "" "Save, then <a href=\"http://validator.w3.org/\">use HTML validator</a> on " "the \"about\" page to check your input." msgstr "" -#: forum/conf/flatpages.py:30 -msgid "Text the Q&A forum Privacy Policy (html format)" +#: conf/flatpages.py:30 +msgid "Text of the Q&A forum Privacy Policy (html format)" msgstr "" -#: forum/conf/flatpages.py:33 +#: conf/flatpages.py:33 msgid "" "Save, then <a href=\"http://validator.w3.org/\">use HTML validator</a> on " "the \"privacy\" page to check your input." msgstr "" -#: forum/conf/forum_data_rules.py:12 -msgid "Settings for forum data entry and display" +#: conf/forum_data_rules.py:12 +msgid "Settings for askbot data entry and display" msgstr "" -#: forum/conf/forum_data_rules.py:20 +#: conf/forum_data_rules.py:20 msgid "Check to enable community wiki feature" msgstr "" -#: forum/conf/forum_data_rules.py:29 +#: conf/forum_data_rules.py:29 msgid "Maximum length of tag (number of characters)" msgstr "" -#: forum/conf/forum_data_rules.py:38 +#: conf/forum_data_rules.py:38 msgid "Maximum number of tags per question" msgstr "" -#: forum/conf/forum_data_rules.py:50 +#: conf/forum_data_rules.py:50 msgid "Number of questions to list by default" msgstr "" -#: forum/conf/forum_data_rules.py:60 +#: conf/forum_data_rules.py:60 msgid "What should \"unanswered question\" mean?" msgstr "" -#: forum/conf/minimum_reputation.py:11 +#: conf/minimum_reputation.py:11 msgid "Minimum reputation required to perform actions" msgstr "" -#: forum/conf/minimum_reputation.py:20 +#: conf/minimum_reputation.py:20 msgid "Upvote" msgstr "" -#: forum/conf/minimum_reputation.py:29 +#: conf/minimum_reputation.py:29 msgid "Downvote" msgstr "" -#: forum/conf/minimum_reputation.py:38 +#: conf/minimum_reputation.py:38 msgid "Flag offensive" msgstr "" -#: forum/conf/minimum_reputation.py:47 +#: conf/minimum_reputation.py:47 msgid "Leave comments" msgstr "" -#: forum/conf/minimum_reputation.py:56 +#: conf/minimum_reputation.py:56 msgid "Delete comments posted by others" msgstr "" -#: forum/conf/minimum_reputation.py:65 +#: conf/minimum_reputation.py:65 +msgid "Delete questions and answers posted by others" +msgstr "" + +#: conf/minimum_reputation.py:74 msgid "Upload files" msgstr "" -#: forum/conf/minimum_reputation.py:74 +#: conf/minimum_reputation.py:83 msgid "Close own questions" msgstr "" -#: forum/conf/minimum_reputation.py:83 +#: conf/minimum_reputation.py:92 msgid "Retag questions posted by other people" msgstr "" -#: forum/conf/minimum_reputation.py:92 +#: conf/minimum_reputation.py:101 msgid "Reopen own questions" msgstr "" -#: forum/conf/minimum_reputation.py:101 +#: conf/minimum_reputation.py:110 msgid "Edit community wiki posts" msgstr "" -#: forum/conf/minimum_reputation.py:110 +#: conf/minimum_reputation.py:119 msgid "Edit posts authored by other people" msgstr "" -#: forum/conf/minimum_reputation.py:119 +#: conf/minimum_reputation.py:128 msgid "View offensive flags" msgstr "" -#: forum/conf/minimum_reputation.py:128 +#: conf/minimum_reputation.py:137 msgid "Disable nofollow directive on links" msgstr "" -#: forum/conf/minimum_reputation.py:137 +#: conf/minimum_reputation.py:146 msgid "Close questions asked by others" msgstr "" -#: forum/conf/minimum_reputation.py:146 +#: conf/minimum_reputation.py:155 msgid "Lock posts" msgstr "" -#: forum/conf/reputation_changes.py:12 +#: conf/reputation_changes.py:12 msgid "Reputaion loss and gain rules" msgstr "" -#: forum/conf/reputation_changes.py:21 +#: conf/reputation_changes.py:21 msgid "Maximum daily reputation gain per user" msgstr "" -#: forum/conf/reputation_changes.py:30 +#: conf/reputation_changes.py:30 msgid "Gain for receiving an upvote" msgstr "" -#: forum/conf/reputation_changes.py:39 +#: conf/reputation_changes.py:39 msgid "Gain for the author of accepted answer" msgstr "" -#: forum/conf/reputation_changes.py:48 +#: conf/reputation_changes.py:48 msgid "Gain for accepting best answer" msgstr "" -#: forum/conf/reputation_changes.py:57 +#: conf/reputation_changes.py:57 msgid "Gain for post owner on canceled downvote" msgstr "" -#: forum/conf/reputation_changes.py:66 +#: conf/reputation_changes.py:66 msgid "Gain for voter on canceling downvote" msgstr "" -#: forum/conf/reputation_changes.py:76 +#: conf/reputation_changes.py:76 msgid "Loss for voter for canceling of answer acceptance" msgstr "" -#: forum/conf/reputation_changes.py:86 +#: conf/reputation_changes.py:86 msgid "Loss for author whose answer was \"un-accepted\"" msgstr "" -#: forum/conf/reputation_changes.py:96 +#: conf/reputation_changes.py:96 msgid "Loss for giving a downvote" msgstr "" -#: forum/conf/reputation_changes.py:106 +#: conf/reputation_changes.py:106 msgid "Loss for owner of post that was flagged offensive" msgstr "" -#: forum/conf/reputation_changes.py:116 +#: conf/reputation_changes.py:116 msgid "Loss for owner of post that was downvoted" msgstr "" -#: forum/conf/reputation_changes.py:126 +#: conf/reputation_changes.py:126 msgid "Loss for owner of post that was flagged 3 times per same revision" msgstr "" -#: forum/conf/reputation_changes.py:136 +#: conf/reputation_changes.py:136 msgid "Loss for owner of post that was flagged 5 times per same revision" msgstr "" -#: forum/conf/reputation_changes.py:146 +#: conf/reputation_changes.py:146 msgid "Loss for post owner when upvote is canceled" msgstr "" -#: forum/conf/site_settings.py:13 +#: conf/site_settings.py:13 msgid "Q&A forum website parameters and urls" msgstr "" -#: forum/conf/site_settings.py:21 +#: conf/site_settings.py:21 msgid "Site title for the Q&A forum" msgstr "" -#: forum/conf/site_settings.py:30 +#: conf/site_settings.py:30 msgid "Comma separated list of Q&A site keywords" msgstr "" -#: forum/conf/site_settings.py:39 +#: conf/site_settings.py:39 msgid "Copyright message to show in the footer" msgstr "" -#: forum/conf/site_settings.py:48 +#: conf/site_settings.py:48 msgid "Site description for the search engines" msgstr "" -#: forum/conf/site_settings.py:56 +#: conf/site_settings.py:56 msgid "Askbot" msgstr "" -#: forum/conf/site_settings.py:58 +#: conf/site_settings.py:58 msgid "Short name for your Q&A forum" msgstr "" -#: forum/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 "" -#: forum/conf/site_settings.py:77 +#: conf/site_settings.py:77 msgid "Link shown in the greeting message shown to the anonymous user" msgstr "" -#: forum/conf/site_settings.py:78 +#: conf/site_settings.py:78 msgid "" "If you change this url from the default - then you will also probably want " "to adjust translation of the following string: " msgstr "" -#: forum/conf/site_settings.py:91 +#: conf/site_settings.py:91 msgid "Feedback site URL" msgstr "" -#: forum/conf/site_settings.py:92 +#: conf/site_settings.py:92 msgid "If left empty, a simple internal feedback form will be used instead" msgstr "" -#: forum/conf/skin_counter_settings.py:11 +#: conf/skin_counter_settings.py:11 msgid "Skin: view, vote and answer counters" msgstr "" -#: forum/conf/skin_counter_settings.py:19 +#: conf/skin_counter_settings.py:19 msgid "Vote counter value to give \"full color\"" msgstr "" -#: forum/conf/skin_counter_settings.py:28 +#: conf/skin_counter_settings.py:29 msgid "Background color for votes = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:29 -#: forum/conf/skin_counter_settings.py:39 -#: forum/conf/skin_counter_settings.py:49 -#: forum/conf/skin_counter_settings.py:59 -#: forum/conf/skin_counter_settings.py:69 -#: forum/conf/skin_counter_settings.py:81 -#: forum/conf/skin_counter_settings.py:100 -#: forum/conf/skin_counter_settings.py:110 -#: forum/conf/skin_counter_settings.py:120 -#: forum/conf/skin_counter_settings.py:132 -#: forum/conf/skin_counter_settings.py:142 -#: forum/conf/skin_counter_settings.py:154 -#: forum/conf/skin_counter_settings.py:175 -#: forum/conf/skin_counter_settings.py:185 -#: forum/conf/skin_counter_settings.py:195 -#: forum/conf/skin_counter_settings.py:205 -#: forum/conf/skin_counter_settings.py:217 -#: forum/conf/skin_counter_settings.py:227 -#: forum/conf/skin_counter_settings.py:239 -#: forum/conf/skin_counter_settings.py:249 +#: conf/skin_counter_settings.py:30 conf/skin_counter_settings.py:41 +#: conf/skin_counter_settings.py:52 conf/skin_counter_settings.py:62 +#: conf/skin_counter_settings.py:72 conf/skin_counter_settings.py:85 +#: conf/skin_counter_settings.py:106 conf/skin_counter_settings.py:117 +#: conf/skin_counter_settings.py:128 conf/skin_counter_settings.py:138 +#: conf/skin_counter_settings.py:148 conf/skin_counter_settings.py:161 +#: conf/skin_counter_settings.py:184 conf/skin_counter_settings.py:195 +#: conf/skin_counter_settings.py:206 conf/skin_counter_settings.py:216 +#: conf/skin_counter_settings.py:228 conf/skin_counter_settings.py:239 +#: conf/skin_counter_settings.py:252 conf/skin_counter_settings.py:262 msgid "HTML color name of hex value" msgstr "" -#: forum/conf/skin_counter_settings.py:38 +#: conf/skin_counter_settings.py:40 msgid "Foreground color for votes = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:48 -msgid "Background color for votes = 1" +#: conf/skin_counter_settings.py:51 +msgid "Background color for votes" msgstr "" -#: forum/conf/skin_counter_settings.py:58 -msgid "Foreground color for votes = 1" +#: conf/skin_counter_settings.py:61 +msgid "Foreground color for votes" msgstr "" -#: forum/conf/skin_counter_settings.py:68 +#: conf/skin_counter_settings.py:71 msgid "Background color for votes = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:80 +#: conf/skin_counter_settings.py:84 msgid "Foreground color for votes = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:90 +#: conf/skin_counter_settings.py:95 msgid "View counter value to give \"full color\"" msgstr "" -#: forum/conf/skin_counter_settings.py:99 +#: conf/skin_counter_settings.py:105 msgid "Background color for views = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:109 +#: conf/skin_counter_settings.py:116 msgid "Foreground color for views = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:119 -msgid "Background color for views = 1" +#: conf/skin_counter_settings.py:127 +msgid "Background color for views" msgstr "" -#: forum/conf/skin_counter_settings.py:131 -msgid "Foreground color for views = 1" +#: conf/skin_counter_settings.py:137 +msgid "Foreground color for views" msgstr "" -#: forum/conf/skin_counter_settings.py:141 +#: conf/skin_counter_settings.py:147 msgid "Background color for views = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:153 +#: conf/skin_counter_settings.py:160 msgid "Foreground color for views = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:163 +#: conf/skin_counter_settings.py:171 msgid "Answer counter value to give \"full color\"" msgstr "" -#: forum/conf/skin_counter_settings.py:174 +#: conf/skin_counter_settings.py:183 msgid "Background color for answers = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:184 +#: conf/skin_counter_settings.py:194 msgid "Foreground color for answers = 0" msgstr "" -#: forum/conf/skin_counter_settings.py:194 -msgid "Background color for answers = 1" +#: conf/skin_counter_settings.py:205 +msgid "Background color for answers" msgstr "" -#: forum/conf/skin_counter_settings.py:204 -msgid "Foreground color for answers = 1" +#: conf/skin_counter_settings.py:215 +msgid "Foreground color for answers" msgstr "" -#: forum/conf/skin_counter_settings.py:216 +#: conf/skin_counter_settings.py:227 msgid "Background color for answers = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:226 +#: conf/skin_counter_settings.py:238 msgid "Foreground color for answers = MAX" msgstr "" -#: forum/conf/skin_counter_settings.py:238 +#: conf/skin_counter_settings.py:251 msgid "Background color for accepted" msgstr "" -#: forum/conf/skin_counter_settings.py:248 +#: conf/skin_counter_settings.py:261 msgid "Foreground color for accepted answer" msgstr "" -#: forum/conf/skin_general_settings.py:11 -msgid "Skin: general settings" +#: conf/skin_general_settings.py:12 +msgid "Skin and User Interface settings" msgstr "" -#: forum/conf/skin_general_settings.py:20 +#: conf/skin_general_settings.py:20 +msgid "Show all UI functions to all users" +msgstr "" + +#: conf/skin_general_settings.py:22 +msgid "" +"If checked, all forum functions will be shown to users, regardless of their " +"reputation. However to use those functions, moderation rules, reputation and " +"other limits will still apply." +msgstr "" + +#: conf/skin_general_settings.py:37 msgid "Select skin" msgstr "" -#: forum/conf/skin_general_settings.py:29 +#: conf/skin_general_settings.py:46 msgid "Skin media revision number" msgstr "" -#: forum/conf/skin_general_settings.py:31 +#: conf/skin_general_settings.py:48 msgid "" "Increment this number when you change image in skin media or stylesheet. " "This helps avoid showing your users outdated images from their browser cache." msgstr "" -#: forum/conf/user_settings.py:10 +#: conf/user_settings.py:10 msgid "User policy settings" msgstr "" -#: forum/conf/user_settings.py:18 +#: conf/user_settings.py:18 msgid "Allow editing user screen name" msgstr "" -#: forum/conf/user_settings.py:28 +#: conf/user_settings.py:28 msgid "Minimum allowed length for screen name" msgstr "" -#: forum/conf/vote_rules.py:13 +#: conf/vote_rules.py:13 msgid "Limits applicable to votes and moderation flags" msgstr "" -#: forum/conf/vote_rules.py:22 +#: conf/vote_rules.py:22 msgid "Number of votes a user can cast per day" msgstr "" -#: forum/conf/vote_rules.py:31 +#: conf/vote_rules.py:31 msgid "Maximum number of flags per user per day" msgstr "" -#: forum/conf/vote_rules.py:40 +#: conf/vote_rules.py:40 msgid "Threshold for warning about remaining daily votes" msgstr "" -#: forum/conf/vote_rules.py:49 +#: conf/vote_rules.py:49 msgid "Number of days to allow canceling votes" msgstr "" -#: forum/conf/vote_rules.py:58 +#: conf/vote_rules.py:58 msgid "Number of flags required to automatically hide posts" msgstr "" -#: forum/conf/vote_rules.py:67 +#: conf/vote_rules.py:67 msgid "Number of flags required to automatically delete posts" msgstr "" -#: forum/const/__init__.py:9 +#: const/__init__.py:9 msgid "duplicate question" msgstr "" -#: forum/const/__init__.py:10 +#: const/__init__.py:10 msgid "question is off-topic or not relevant" msgstr "" -#: forum/const/__init__.py:11 +#: const/__init__.py:11 msgid "too subjective and argumentative" msgstr "" -#: forum/const/__init__.py:12 +#: const/__init__.py:12 msgid "not a real question" msgstr "" -#: forum/const/__init__.py:13 +#: const/__init__.py:13 msgid "the question is answered, right answer was accepted" msgstr "" -#: forum/const/__init__.py:14 +#: const/__init__.py:14 msgid "question is not relevant or outdated" msgstr "" -#: forum/const/__init__.py:15 +#: const/__init__.py:15 msgid "question contains offensive or malicious remarks" msgstr "" -#: forum/const/__init__.py:16 +#: const/__init__.py:16 msgid "spam or advertising" msgstr "" -#: forum/const/__init__.py:17 +#: const/__init__.py:17 msgid "too localized" msgstr "" -#: forum/const/__init__.py:38 forum/skins/default/templates/questions.html:70 -#: forum/skins/default/templates/questions.html:75 +#: const/__init__.py:40 skins/default/templates/questions.html:52 +#: skins/default/templates/questions.html:57 msgid "newest" msgstr "" -#: forum/const/__init__.py:39 forum/skins/default/templates/questions.html:64 -#: forum/skins/default/templates/users.html:28 +#: const/__init__.py:41 skins/default/templates/questions.html:46 +#: skins/default/templates/users.html:28 msgid "oldest" msgstr "" -#: forum/const/__init__.py:40 forum/skins/default/templates/questions.html:89 -#: forum/skins/default/templates/questions.html:94 +#: const/__init__.py:42 skins/default/templates/questions.html:71 +#: skins/default/templates/questions.html:76 msgid "active" msgstr "" -#: forum/const/__init__.py:41 forum/skins/default/templates/questions.html:83 +#: const/__init__.py:43 skins/default/templates/questions.html:65 msgid "inactive" msgstr "" -#: forum/const/__init__.py:42 +#: const/__init__.py:44 msgid "hottest" msgstr "" -#: forum/const/__init__.py:43 +#: const/__init__.py:45 msgid "coldest" msgstr "" -#: forum/const/__init__.py:44 +#: const/__init__.py:46 msgid "most voted" msgstr "" -#: forum/const/__init__.py:45 +#: const/__init__.py:47 msgid "least voted" msgstr "" -#: forum/const/__init__.py:46 +#: const/__init__.py:48 msgid "relevance" msgstr "" -#: forum/const/__init__.py:53 forum/skins/default/templates/questions.html:52 +#: const/__init__.py:55 skins/default/templates/questions.html:34 msgid "all" msgstr "" -#: forum/const/__init__.py:54 forum/skins/default/templates/questions.html:53 +#: const/__init__.py:56 skins/default/templates/questions.html:35 msgid "unanswered" msgstr "" -#: forum/const/__init__.py:55 forum/skins/default/templates/questions.html:55 +#: const/__init__.py:57 skins/default/templates/questions.html:37 msgid "favorite" msgstr "" -#: forum/const/__init__.py:67 +#: const/__init__.py:69 msgid "Question has no answers" msgstr "" -#: forum/const/__init__.py:68 +#: const/__init__.py:70 msgid "Question has no accepted answers" msgstr "" -#: forum/const/__init__.py:106 -msgid "question" +#: const/__init__.py:109 +msgid "asked a question" msgstr "" -#: forum/const/__init__.py:107 forum/skins/default/templates/book.html:110 -msgid "answer" +#: const/__init__.py:110 +msgid "answered a question" msgstr "" -#: forum/const/__init__.py:108 +#: const/__init__.py:111 msgid "commented question" msgstr "" -#: forum/const/__init__.py:109 +#: const/__init__.py:112 msgid "commented answer" msgstr "" -#: forum/const/__init__.py:110 +#: const/__init__.py:113 msgid "edited question" msgstr "" -#: forum/const/__init__.py:111 +#: const/__init__.py:114 msgid "edited answer" msgstr "" -#: forum/const/__init__.py:112 +#: const/__init__.py:115 msgid "received award" msgstr "received badge" -#: forum/const/__init__.py:113 +#: const/__init__.py:116 msgid "marked best answer" msgstr "" -#: forum/const/__init__.py:114 +#: const/__init__.py:117 msgid "upvoted" msgstr "" -#: forum/const/__init__.py:115 +#: const/__init__.py:118 msgid "downvoted" msgstr "" -#: forum/const/__init__.py:116 +#: const/__init__.py:119 msgid "canceled vote" msgstr "" -#: forum/const/__init__.py:117 +#: const/__init__.py:120 msgid "deleted question" msgstr "" -#: forum/const/__init__.py:118 +#: const/__init__.py:121 msgid "deleted answer" msgstr "" -#: forum/const/__init__.py:119 +#: const/__init__.py:122 msgid "marked offensive" msgstr "" -#: forum/const/__init__.py:120 +#: const/__init__.py:123 msgid "updated tags" msgstr "" -#: forum/const/__init__.py:121 +#: const/__init__.py:124 msgid "selected favorite" msgstr "" -#: forum/const/__init__.py:122 +#: const/__init__.py:125 msgid "completed user profile" msgstr "" -#: forum/const/__init__.py:123 +#: const/__init__.py:126 msgid "email update sent to user" msgstr "" -#: forum/const/__init__.py:124 +#: const/__init__.py:127 msgid "mentioned in the post" msgstr "" -#: forum/const/__init__.py:171 +#: const/__init__.py:178 msgid "question_answered" msgstr "answered question" -#: forum/const/__init__.py:172 +#: const/__init__.py:179 msgid "question_commented" msgstr "commented question" -#: forum/const/__init__.py:173 +#: const/__init__.py:180 msgid "answer_commented" msgstr "" -#: forum/const/__init__.py:174 +#: const/__init__.py:181 msgid "answer_accepted" msgstr "" -#: forum/const/__init__.py:178 +#: const/__init__.py:185 msgid "[closed]" msgstr "" -#: forum/const/__init__.py:179 +#: const/__init__.py:186 msgid "[deleted]" msgstr "" -#: forum/const/__init__.py:180 forum/views/readers.py:387 -#: forum/views/readers.py:408 +#: const/__init__.py:187 views/readers.py:413 views/readers.py:434 msgid "initial version" msgstr "" -#: forum/const/__init__.py:181 +#: const/__init__.py:188 msgid "retagged" msgstr "" -#: forum/const/__init__.py:186 +#: const/__init__.py:193 msgid "exclude ignored tags" msgstr "" -#: forum/const/__init__.py:187 +#: const/__init__.py:194 msgid "allow only selected tags" msgstr "" -#: forum/const/__init__.py:191 +#: const/__init__.py:198 msgid "instantly" msgstr "" -#: forum/const/__init__.py:192 +#: const/__init__.py:199 msgid "daily" msgstr "" -#: forum/const/__init__.py:193 +#: const/__init__.py:200 msgid "weekly" msgstr "" -#: forum/const/__init__.py:194 +#: const/__init__.py:201 msgid "no email" msgstr "" -#: forum/const/message_keys.py:19 +#: const/message_keys.py:19 #, python-format msgid "First time here? Check out the <a href=\"%s\">FAQ</a>!" msgstr "" -#: forum/importers/stackexchange/management/commands/load_stackexchange.py:124 +#: deps/django_authopenid/forms.py:72 deps/django_authopenid/views.py:134 +msgid "i-names are not supported" +msgstr "" + +#: deps/django_authopenid/forms.py:135 +msgid "Account with this name already exists on the forum" +msgstr "" + +#: deps/django_authopenid/forms.py:136 +msgid "can't have two logins to the same account yet, sorry." +msgstr "" + +#: deps/django_authopenid/forms.py:158 +msgid "Please enter valid username and password (both are case-sensitive)." +msgstr "" + +#: deps/django_authopenid/forms.py:161 deps/django_authopenid/forms.py:211 +msgid "This account is inactive." +msgstr "" + +#: deps/django_authopenid/forms.py:163 +msgid "Login failed." +msgstr "" + +#: deps/django_authopenid/forms.py:165 +msgid "Please enter username and password" +msgstr "" + +#: deps/django_authopenid/forms.py:167 +msgid "Please enter your password" +msgstr "" + +#: deps/django_authopenid/forms.py:169 +msgid "Please enter user name" +msgstr "" + +#: deps/django_authopenid/forms.py:207 +msgid "" +"Please enter a valid username and password. Note that " +"both fields are case-sensitive." +msgstr "" + +#: deps/django_authopenid/forms.py:230 +msgid "Current password" +msgstr "" + +#: deps/django_authopenid/forms.py:241 +msgid "" +"Old password is incorrect. Please enter the correct " +"password." +msgstr "" + +#: deps/django_authopenid/forms.py:306 +msgid "Your user name (<i>required</i>)" +msgstr "" + +#: deps/django_authopenid/forms.py:321 +msgid "Incorrect username." +msgstr "sorry, there is no such user name" + +#: deps/django_authopenid/urls.py:23 deps/django_authopenid/urls.py:24 +#: deps/django_authopenid/urls.py:25 deps/django_authopenid/urls.py:27 +#: setup_templates/settings.py:198 +msgid "signin/" +msgstr "" + +#: deps/django_authopenid/urls.py:24 +msgid "newquestion/" +msgstr "" + +#: deps/django_authopenid/urls.py:25 +msgid "newanswer/" +msgstr "" + +#: deps/django_authopenid/urls.py:26 +msgid "signout/" +msgstr "" + +#: deps/django_authopenid/urls.py:27 +msgid "complete/" +msgstr "" + +#: deps/django_authopenid/urls.py:29 +msgid "register/" +msgstr "" + +#: deps/django_authopenid/urls.py:30 +msgid "signup/" +msgstr "" + +#: deps/django_authopenid/urls.py:32 +msgid "sendpw/" +msgstr "" + +#: deps/django_authopenid/urls.py:33 deps/django_authopenid/urls.py:37 +msgid "password/" +msgstr "" + +#: deps/django_authopenid/urls.py:33 +msgid "confirm/" +msgstr "" + +#: deps/django_authopenid/urls.py:38 deps/django_authopenid/urls.py:39 +#: deps/django_authopenid/urls.py:40 deps/django_authopenid/urls.py:41 +msgid "email/" +msgstr "" + +#: deps/django_authopenid/urls.py:38 +msgid "validate/" +msgstr "" + +#: deps/django_authopenid/urls.py:39 +msgid "change/" +msgstr "" + +#: deps/django_authopenid/urls.py:40 +msgid "sendkey/" +msgstr "" + +#: deps/django_authopenid/urls.py:41 +msgid "verify/" +msgstr "" + +#: deps/django_authopenid/urls.py:42 +msgid "openid/" +msgstr "" + +#: deps/django_authopenid/urls.py:51 +msgid "external-login/forgot-password/" +msgstr "" + +#: deps/django_authopenid/urls.py:54 +msgid "external-login/signup/" +msgstr "" + +#: deps/django_authopenid/views.py:141 +#, python-format +msgid "OpenID %(openid_url)s is invalid" +msgstr "" + +#: deps/django_authopenid/views.py:616 +msgid "Welcome email subject line" +msgstr "Welcome to the Q&A forum" + +#: deps/django_authopenid/views.py:722 +msgid "Password changed." +msgstr "" + +#: deps/django_authopenid/views.py:734 deps/django_authopenid/views.py:740 +#, python-format +msgid "your email needs to be validated see %(details_url)s" +msgstr "" +"Your email needs to be validated. Please see details <a " +"id='validate_email_alert' href='%(details_url)s'>here</a>." + +#: deps/django_authopenid/views.py:761 +msgid "Email verification subject line" +msgstr "Verification Email from Q&A forum" + +#: deps/django_authopenid/views.py:852 +msgid "your email was not changed" +msgstr "" + +#: deps/django_authopenid/views.py:900 deps/django_authopenid/views.py:1058 +#, python-format +msgid "No OpenID %s found associated in our database" +msgstr "" + +#: deps/django_authopenid/views.py:904 deps/django_authopenid/views.py:1065 +#, python-format +msgid "The OpenID %s isn't associated to current user logged in" +msgstr "" + +#: deps/django_authopenid/views.py:912 +msgid "Email Changed." +msgstr "" + +#: deps/django_authopenid/views.py:990 +msgid "This OpenID is already associated with another account." +msgstr "" + +#: deps/django_authopenid/views.py:995 +#, python-format +msgid "OpenID %s is now associated with your account." +msgstr "" + +#: deps/django_authopenid/views.py:1068 +msgid "Account deleted." +msgstr "" + +#: deps/django_authopenid/views.py:1120 +msgid "Request for new password" +msgstr "" + +#: deps/django_authopenid/views.py:1134 +msgid "A new password and the activation link were sent to your email address." +msgstr "" + +#: deps/django_authopenid/views.py:1166 +#, python-format +msgid "" +"Could not change password. Confirmation key '%s' is not " +"registered." +msgstr "" + +#: deps/django_authopenid/views.py:1176 +msgid "" +"Can not change password. User don't exist anymore in our " +"database." +msgstr "" + +#: deps/django_authopenid/views.py:1186 +#, python-format +msgid "Password changed for %s. You may now sign in." +msgstr "" + +#: deps/livesettings/models.py:101 deps/livesettings/models.py:140 +msgid "Site" +msgstr "" + +#: deps/livesettings/values.py:103 +msgid "Base Settings" +msgstr "" + +#: deps/livesettings/values.py:210 +msgid "Default value: \"\"" +msgstr "" + +#: deps/livesettings/values.py:217 +msgid "Default value: " +msgstr "" + +#: deps/livesettings/values.py:220 +#, python-format +msgid "Default value: %s" +msgstr "" + +#: deps/livesettings/templates/livesettings/_admin_site_views.html:4 +msgid "Sites" +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:11 +#: deps/livesettings/templates/livesettings/site_settings.html:23 +msgid "Documentation" +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:11 +#: deps/livesettings/templates/livesettings/site_settings.html:23 +#: skins/default/templates/account_settings.html:29 +#: skins/default/templates/authopenid/changepw.html:5 +#: skins/default/templates/authopenid/changepw.html:14 +#: skins/default/templates/authopenid/settings.html:29 +msgid "Change password" +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:11 +#: deps/livesettings/templates/livesettings/site_settings.html:23 +msgid "Log out" +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:14 +#: deps/livesettings/templates/livesettings/site_settings.html:26 +msgid "Home" +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:15 +msgid "Edit Group Settings" +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] "" + +#: deps/livesettings/templates/livesettings/group_settings.html:28 +#, python-format +msgid "Settings included in %(name)s." +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:62 +#: deps/livesettings/templates/livesettings/site_settings.html:97 +msgid "You don't have permission to edit values." +msgstr "" + +#: deps/livesettings/templates/livesettings/group_settings.html:68 +msgid "Setting groups" +msgstr "" + +#: deps/livesettings/templates/livesettings/site_settings.html:27 +msgid "Edit Site Settings" +msgstr "" + +#: deps/livesettings/templates/livesettings/site_settings.html:43 +msgid "Livesettings are disabled for this site." +msgstr "" + +#: deps/livesettings/templates/livesettings/site_settings.html:44 +msgid "All configuration options must be edited in the site settings.py file" +msgstr "" + +#: deps/livesettings/templates/livesettings/site_settings.html:66 +#, python-format +msgid "Group settings: %(name)s" +msgstr "" + +#: deps/livesettings/templates/livesettings/site_settings.html:93 +msgid "Uncollapse all" +msgstr "" + +#: deps/recaptcha_django/__init__.py:19 deps/recaptcha_django/__init__.py:80 +msgid "Unknown error." +msgstr "" + +#: deps/recaptcha_django/__init__.py:20 deps/recaptcha_django/__init__.py:21 +msgid "ReCAPTCHA is wrongly configured." +msgstr "" + +#: deps/recaptcha_django/__init__.py:22 +msgid "Bad reCAPTCHA challenge parameter." +msgstr "" + +#: deps/recaptcha_django/__init__.py:23 +msgid "The CAPTCHA solution was incorrect." +msgstr "" + +#: deps/recaptcha_django/__init__.py:24 +msgid "Bad reCAPTCHA verification parameters." +msgstr "" + +#: deps/recaptcha_django/__init__.py:25 +msgid "Provided reCAPTCHA API keys are not valid for this domain." +msgstr "" + +#: deps/recaptcha_django/__init__.py:26 +msgid "ReCAPTCHA could not be reached." +msgstr "" + +#: deps/recaptcha_django/__init__.py:73 +msgid "Invalid request" +msgstr "" + +#: importers/stackexchange/management/commands/load_stackexchange.py:124 msgid "Congratulations, you are now an Administrator" msgstr "" -#: forum/management/commands/send_email_alerts.py:380 -#: forum/models/__init__.py:320 +#: management/commands/send_email_alerts.py:418 models/__init__.py:1439 msgid "email update message subject" msgstr "news from Q&A forum" -#: forum/management/commands/send_email_alerts.py:382 +#: management/commands/send_email_alerts.py:421 #, 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" @@ -1351,839 +1474,1127 @@ msgstr[1] "" "<p>Dear %(name)s,</p><p>The following %(num)d questions have been updated on " "the Q&A forum:</p>" -#: forum/management/commands/send_email_alerts.py:399 +#: management/commands/send_email_alerts.py:438 msgid "new question" msgstr "" -#: forum/management/commands/send_email_alerts.py:416 +#: management/commands/send_email_alerts.py:455 msgid "" -"Please visit the forum and see what's new! Could you spread the word about " +"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 "" -#: forum/management/commands/send_email_alerts.py:428 +#: management/commands/send_email_alerts.py:467 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 forum administrator." +"the askbot administrator." msgstr "" -#: forum/management/commands/send_email_alerts.py:434 +#: management/commands/send_email_alerts.py:473 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 forum " +"this email more than once a week please report this issue to the askbot " "administrator." msgstr "" -#: forum/management/commands/send_email_alerts.py:440 +#: management/commands/send_email_alerts.py:479 msgid "" "There is a chance that you may be receiving links seen before - due to a " "technicality that will eventually go away. " msgstr "" -#: forum/management/commands/send_email_alerts.py:455 +#: management/commands/send_email_alerts.py:494 #, python-format msgid "" "go to %(email_settings_link)s to change frequency of email updates or %" "(admin_email)s administrator" msgstr "" -"<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 Q&A forum " -"server.</p>" +"<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 Q&A forum server.</p>" -#: forum/migrations/0005_install_badges.py:10 +#: migrations/0005_install_badges.py:11 msgid "Disciplined" msgstr "" -#: forum/migrations/0005_install_badges.py:10 +#: migrations/0005_install_badges.py:11 msgid "disciplined" msgstr "" -#: forum/migrations/0005_install_badges.py:10 +#: migrations/0005_install_badges.py:11 msgid "Deleted own post with score of 3 or higher" msgstr "" -#: forum/migrations/0005_install_badges.py:11 +#: migrations/0005_install_badges.py:12 msgid "Peer Pressure" msgstr "" -#: forum/migrations/0005_install_badges.py:11 +#: migrations/0005_install_badges.py:12 msgid "peer-pressure" msgstr "" -#: forum/migrations/0005_install_badges.py:11 +#: migrations/0005_install_badges.py:12 msgid "Deleted own post with score of -3 or lower" msgstr "" -#: forum/migrations/0005_install_badges.py:12 +#: migrations/0005_install_badges.py:13 msgid "Nice answer" msgstr "" -#: forum/migrations/0005_install_badges.py:12 +#: migrations/0005_install_badges.py:13 msgid "nice-answer" msgstr "" -#: forum/migrations/0005_install_badges.py:12 +#: migrations/0005_install_badges.py:13 msgid "Answer voted up 10 times" msgstr "" -#: forum/migrations/0005_install_badges.py:13 +#: migrations/0005_install_badges.py:14 msgid "Nice Question" msgstr "" -#: forum/migrations/0005_install_badges.py:13 +#: migrations/0005_install_badges.py:14 msgid "nice-question" msgstr "" -#: forum/migrations/0005_install_badges.py:13 +#: migrations/0005_install_badges.py:14 msgid "Question voted up 10 times" msgstr "" -#: forum/migrations/0005_install_badges.py:14 +#: migrations/0005_install_badges.py:15 msgid "Pundit" msgstr "" -#: forum/migrations/0005_install_badges.py:14 +#: migrations/0005_install_badges.py:15 msgid "pundit" msgstr "" -#: forum/migrations/0005_install_badges.py:14 +#: migrations/0005_install_badges.py:15 msgid "Left 10 comments with score of 10 or more" msgstr "" -#: forum/migrations/0005_install_badges.py:15 +#: migrations/0005_install_badges.py:16 msgid "Popular Question" msgstr "" -#: forum/migrations/0005_install_badges.py:15 +#: migrations/0005_install_badges.py:16 msgid "popular-question" msgstr "" -#: forum/migrations/0005_install_badges.py:15 +#: migrations/0005_install_badges.py:16 msgid "Asked a question with 1,000 views" msgstr "" -#: forum/migrations/0005_install_badges.py:16 +#: migrations/0005_install_badges.py:17 msgid "Citizen patrol" msgstr "" -#: forum/migrations/0005_install_badges.py:16 +#: migrations/0005_install_badges.py:17 msgid "citizen-patrol" msgstr "" -#: forum/migrations/0005_install_badges.py:16 +#: migrations/0005_install_badges.py:17 msgid "First flagged post" msgstr "" -#: forum/migrations/0005_install_badges.py:17 +#: migrations/0005_install_badges.py:18 msgid "Cleanup" msgstr "" -#: forum/migrations/0005_install_badges.py:17 +#: migrations/0005_install_badges.py:18 msgid "cleanup" msgstr "" -#: forum/migrations/0005_install_badges.py:17 +#: migrations/0005_install_badges.py:18 msgid "First rollback" msgstr "" -#: forum/migrations/0005_install_badges.py:18 +#: migrations/0005_install_badges.py:19 msgid "Critic" msgstr "" -#: forum/migrations/0005_install_badges.py:18 +#: migrations/0005_install_badges.py:19 msgid "critic" msgstr "" -#: forum/migrations/0005_install_badges.py:18 +#: migrations/0005_install_badges.py:19 msgid "First down vote" msgstr "" -#: forum/migrations/0005_install_badges.py:19 +#: migrations/0005_install_badges.py:20 msgid "Editor" msgstr "" -#: forum/migrations/0005_install_badges.py:19 +#: migrations/0005_install_badges.py:20 msgid "editor" msgstr "" -#: forum/migrations/0005_install_badges.py:19 +#: migrations/0005_install_badges.py:20 msgid "First edit" msgstr "" -#: forum/migrations/0005_install_badges.py:20 +#: migrations/0005_install_badges.py:21 msgid "Organizer" msgstr "" -#: forum/migrations/0005_install_badges.py:20 +#: migrations/0005_install_badges.py:21 msgid "organizer" msgstr "" -#: forum/migrations/0005_install_badges.py:20 +#: migrations/0005_install_badges.py:21 msgid "First retag" msgstr "" -#: forum/migrations/0005_install_badges.py:21 +#: migrations/0005_install_badges.py:22 msgid "Scholar" msgstr "" -#: forum/migrations/0005_install_badges.py:21 +#: migrations/0005_install_badges.py:22 msgid "scholar" msgstr "" -#: forum/migrations/0005_install_badges.py:21 +#: migrations/0005_install_badges.py:22 msgid "First accepted answer on your own question" msgstr "" -#: forum/migrations/0005_install_badges.py:22 +#: migrations/0005_install_badges.py:23 msgid "Student" msgstr "" -#: forum/migrations/0005_install_badges.py:22 +#: migrations/0005_install_badges.py:23 msgid "student" msgstr "" -#: forum/migrations/0005_install_badges.py:22 +#: migrations/0005_install_badges.py:23 msgid "Asked first question with at least one up vote" msgstr "" -#: forum/migrations/0005_install_badges.py:23 +#: migrations/0005_install_badges.py:24 msgid "Supporter" msgstr "" -#: forum/migrations/0005_install_badges.py:23 +#: migrations/0005_install_badges.py:24 msgid "supporter" msgstr "" -#: forum/migrations/0005_install_badges.py:23 +#: migrations/0005_install_badges.py:24 msgid "First up vote" msgstr "" -#: forum/migrations/0005_install_badges.py:24 +#: migrations/0005_install_badges.py:25 msgid "Teacher" msgstr "" -#: forum/migrations/0005_install_badges.py:24 +#: migrations/0005_install_badges.py:25 msgid "teacher" msgstr "" -#: forum/migrations/0005_install_badges.py:24 +#: migrations/0005_install_badges.py:25 msgid "Answered first question with at least one up vote" msgstr "" -#: forum/migrations/0005_install_badges.py:25 +#: migrations/0005_install_badges.py:26 msgid "Autobiographer" msgstr "" -#: forum/migrations/0005_install_badges.py:25 +#: migrations/0005_install_badges.py:26 msgid "autobiographer" msgstr "" -#: forum/migrations/0005_install_badges.py:25 +#: migrations/0005_install_badges.py:26 msgid "Completed all user profile fields" msgstr "" -#: forum/migrations/0005_install_badges.py:26 +#: migrations/0005_install_badges.py:27 msgid "Self-Learner" msgstr "" -#: forum/migrations/0005_install_badges.py:26 +#: migrations/0005_install_badges.py:27 msgid "self-learner" msgstr "" -#: forum/migrations/0005_install_badges.py:26 +#: migrations/0005_install_badges.py:27 msgid "Answered your own question with at least 3 up votes" msgstr "" -#: forum/migrations/0005_install_badges.py:27 +#: migrations/0005_install_badges.py:28 msgid "Great Answer" msgstr "" -#: forum/migrations/0005_install_badges.py:27 +#: migrations/0005_install_badges.py:28 msgid "great-answer" msgstr "" -#: forum/migrations/0005_install_badges.py:27 +#: migrations/0005_install_badges.py:28 msgid "Answer voted up 100 times" msgstr "" -#: forum/migrations/0005_install_badges.py:28 +#: migrations/0005_install_badges.py:29 msgid "Great Question" msgstr "" -#: forum/migrations/0005_install_badges.py:28 +#: migrations/0005_install_badges.py:29 msgid "great-question" msgstr "" -#: forum/migrations/0005_install_badges.py:28 +#: migrations/0005_install_badges.py:29 msgid "Question voted up 100 times" msgstr "" -#: forum/migrations/0005_install_badges.py:29 +#: migrations/0005_install_badges.py:30 msgid "Stellar Question" msgstr "" -#: forum/migrations/0005_install_badges.py:29 +#: migrations/0005_install_badges.py:30 msgid "stellar-question" msgstr "" -#: forum/migrations/0005_install_badges.py:29 +#: migrations/0005_install_badges.py:30 msgid "Question favorited by 100 users" msgstr "" -#: forum/migrations/0005_install_badges.py:30 +#: migrations/0005_install_badges.py:31 msgid "Famous question" msgstr "" -#: forum/migrations/0005_install_badges.py:30 +#: migrations/0005_install_badges.py:31 msgid "famous-question" msgstr "" -#: forum/migrations/0005_install_badges.py:30 +#: migrations/0005_install_badges.py:31 msgid "Asked a question with 10,000 views" msgstr "" -#: forum/migrations/0005_install_badges.py:31 +#: migrations/0005_install_badges.py:32 msgid "Alpha" msgstr "" -#: forum/migrations/0005_install_badges.py:31 +#: migrations/0005_install_badges.py:32 msgid "alpha" msgstr "" -#: forum/migrations/0005_install_badges.py:31 +#: migrations/0005_install_badges.py:32 msgid "Actively participated in the private alpha" msgstr "" -#: forum/migrations/0005_install_badges.py:32 +#: migrations/0005_install_badges.py:33 msgid "Good Answer" msgstr "" -#: forum/migrations/0005_install_badges.py:32 +#: migrations/0005_install_badges.py:33 msgid "good-answer" msgstr "" -#: forum/migrations/0005_install_badges.py:32 +#: migrations/0005_install_badges.py:33 msgid "Answer voted up 25 times" msgstr "" -#: forum/migrations/0005_install_badges.py:33 +#: migrations/0005_install_badges.py:34 msgid "Good Question" msgstr "" -#: forum/migrations/0005_install_badges.py:33 +#: migrations/0005_install_badges.py:34 msgid "good-question" msgstr "" -#: forum/migrations/0005_install_badges.py:33 +#: migrations/0005_install_badges.py:34 msgid "Question voted up 25 times" msgstr "" -#: forum/migrations/0005_install_badges.py:34 +#: migrations/0005_install_badges.py:35 msgid "Favorite Question" msgstr "" -#: forum/migrations/0005_install_badges.py:34 +#: migrations/0005_install_badges.py:35 msgid "favorite-question" msgstr "" -#: forum/migrations/0005_install_badges.py:34 +#: migrations/0005_install_badges.py:35 msgid "Question favorited by 25 users" msgstr "" -#: forum/migrations/0005_install_badges.py:35 +#: migrations/0005_install_badges.py:36 msgid "Civic duty" msgstr "" -#: forum/migrations/0005_install_badges.py:35 +#: migrations/0005_install_badges.py:36 msgid "civic-duty" msgstr "" -#: forum/migrations/0005_install_badges.py:35 +#: migrations/0005_install_badges.py:36 msgid "Voted 300 times" msgstr "" -#: forum/migrations/0005_install_badges.py:36 +#: migrations/0005_install_badges.py:37 msgid "Strunk & White" msgstr "" -#: forum/migrations/0005_install_badges.py:36 +#: migrations/0005_install_badges.py:37 msgid "strunk-and-white" msgstr "" -#: forum/migrations/0005_install_badges.py:36 +#: migrations/0005_install_badges.py:37 msgid "Edited 100 entries" msgstr "" -#: forum/migrations/0005_install_badges.py:37 +#: migrations/0005_install_badges.py:38 msgid "Generalist" msgstr "" -#: forum/migrations/0005_install_badges.py:37 +#: migrations/0005_install_badges.py:38 msgid "generalist" msgstr "" -#: forum/migrations/0005_install_badges.py:37 +#: migrations/0005_install_badges.py:38 msgid "Active in many different tags" msgstr "" -#: forum/migrations/0005_install_badges.py:38 +#: migrations/0005_install_badges.py:39 msgid "Expert" msgstr "" -#: forum/migrations/0005_install_badges.py:38 +#: migrations/0005_install_badges.py:39 msgid "expert" msgstr "" -#: forum/migrations/0005_install_badges.py:38 +#: migrations/0005_install_badges.py:39 msgid "Very active in one tag" msgstr "" -#: forum/migrations/0005_install_badges.py:39 +#: migrations/0005_install_badges.py:40 msgid "Yearling" msgstr "" -#: forum/migrations/0005_install_badges.py:39 +#: migrations/0005_install_badges.py:40 msgid "yearling" msgstr "" -#: forum/migrations/0005_install_badges.py:39 +#: migrations/0005_install_badges.py:40 msgid "Active member for a year" msgstr "" -#: forum/migrations/0005_install_badges.py:40 +#: migrations/0005_install_badges.py:41 msgid "Notable Question" msgstr "" -#: forum/migrations/0005_install_badges.py:40 +#: migrations/0005_install_badges.py:41 msgid "notable-question" msgstr "" -#: forum/migrations/0005_install_badges.py:40 +#: migrations/0005_install_badges.py:41 msgid "Asked a question with 2,500 views" msgstr "" -#: forum/migrations/0005_install_badges.py:41 +#: migrations/0005_install_badges.py:42 msgid "Enlightened" msgstr "" -#: forum/migrations/0005_install_badges.py:41 +#: migrations/0005_install_badges.py:42 msgid "enlightened" msgstr "" -#: forum/migrations/0005_install_badges.py:41 +#: migrations/0005_install_badges.py:42 msgid "First answer was accepted with at least 10 up votes" msgstr "" -#: forum/migrations/0005_install_badges.py:42 +#: migrations/0005_install_badges.py:43 msgid "Beta" msgstr "" -#: forum/migrations/0005_install_badges.py:42 +#: migrations/0005_install_badges.py:43 msgid "beta" msgstr "" -#: forum/migrations/0005_install_badges.py:42 +#: migrations/0005_install_badges.py:43 msgid "Actively participated in the private beta" msgstr "" -#: forum/migrations/0005_install_badges.py:43 +#: migrations/0005_install_badges.py:44 msgid "Guru" msgstr "" -#: forum/migrations/0005_install_badges.py:43 +#: migrations/0005_install_badges.py:44 msgid "guru" msgstr "" -#: forum/migrations/0005_install_badges.py:43 +#: migrations/0005_install_badges.py:44 msgid "Accepted answer and voted up 40 times" msgstr "" -#: forum/migrations/0005_install_badges.py:44 +#: migrations/0005_install_badges.py:45 msgid "Necromancer" msgstr "" -#: forum/migrations/0005_install_badges.py:44 +#: migrations/0005_install_badges.py:45 msgid "necromancer" msgstr "" -#: forum/migrations/0005_install_badges.py:44 +#: migrations/0005_install_badges.py:45 msgid "Answered a question more than 60 days later with at least 5 votes" msgstr "" -#: forum/migrations/0005_install_badges.py:45 +#: migrations/0005_install_badges.py:46 msgid "Taxonomist" msgstr "" -#: forum/migrations/0005_install_badges.py:45 +#: migrations/0005_install_badges.py:46 msgid "taxonomist" msgstr "" -#: forum/migrations/0005_install_badges.py:45 +#: migrations/0005_install_badges.py:46 msgid "Created a tag used by 50 questions" msgstr "" -#: forum/models/question.py:531 +#: models/__init__.py:162 +msgid "" +"Sorry, you cannot accept or unaccept best answers because your account is " +"blocked" +msgstr "" + +#: models/__init__.py:167 +msgid "" +"Sorry, you cannot accept or unaccept best answers because your account is " +"suspended" +msgstr "" + +#: models/__init__.py:173 +msgid "" +"Sorry, you cannot accept or unaccept your own answer to your own question" +msgstr "" + +#: models/__init__.py:180 +#, python-format +msgid "" +"Sorry, only original author of the question - %(username)s - can accept the " +"best answer" +msgstr "" + +#: models/__init__.py:203 +msgid "cannot vote for own posts" +msgstr "Sorry, you cannot vote for your own posts" + +#: models/__init__.py:206 +msgid "Sorry your account appears to be blocked " +msgstr "" + +#: models/__init__.py:211 +msgid "Sorry your account appears to be suspended " +msgstr "" + +#: models/__init__.py:221 +#, python-format +msgid ">%(points)s points required to upvote" +msgstr ">%(points)s points required to upvote " + +#: models/__init__.py:227 +#, python-format +msgid ">%(points)s points required to downvote" +msgstr ">%(points)s points required to downvote " + +#: models/__init__.py:242 +msgid "Sorry, blocked users cannot upload files" +msgstr "" + +#: models/__init__.py:243 +msgid "Sorry, suspended users cannot upload files" +msgstr "" + +#: models/__init__.py:245 +#, python-format +msgid "" +"uploading images is limited to users with >%(min_rep)s reputation points" +msgstr "sorry, file uploading requires karma >%(min_rep)s" + +#: models/__init__.py:264 models/__init__.py:297 models/__init__.py:1734 +msgid "blocked users cannot post" +msgstr "" +"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." + +#: models/__init__.py:265 models/__init__.py:1737 +msgid "suspended users cannot post" +msgstr "" +"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." + +#: models/__init__.py:283 +msgid "" +"Sorry, since your account is suspended you can comment only your own posts" +msgstr "" + +#: models/__init__.py:287 +#, python-format +msgid "" +"Sorry, to comment any post a minimum reputation of %(min_rep)s points is " +"required. You can still comment your own posts and answers to your questions" +msgstr "" + +#: models/__init__.py:311 +msgid "" +"This post has been deleted and can be seen only by post ownwers, site " +"administrators and moderators" +msgstr "" + +#: models/__init__.py:328 +msgid "" +"Sorry, only moderators, site administrators and post owners can edit deleted " +"posts" +msgstr "" + +#: models/__init__.py:343 +msgid "Sorry, since your account is blocked you cannot edit posts" +msgstr "" + +#: models/__init__.py:347 +msgid "Sorry, since your account is suspended you can edit only your own posts" +msgstr "" + +#: models/__init__.py:352 +#, python-format +msgid "" +"Sorry, to edit wiki' posts, a minimum reputation of %(min_rep)s is required" +msgstr "" + +#: models/__init__.py:359 +#, python-format +msgid "" +"Sorry, to edit other people' posts, a minimum reputation of %(min_rep)s is " +"required" +msgstr "" + +#: models/__init__.py:422 +msgid "" +"Sorry, cannot delete your question since it has an upvoted answer posted by " +"someone else" +msgid_plural "" +"Sorry, cannot delete your question since it has some upvoted answers posted " +"by other users" +msgstr[0] "" +msgstr[1] "" + +#: models/__init__.py:437 +msgid "Sorry, since your account is blocked you cannot delete posts" +msgstr "" + +#: models/__init__.py:441 +msgid "" +"Sorry, since your account is suspended you can delete only your own posts" +msgstr "" + +#: models/__init__.py:445 +#, python-format +msgid "" +"Sorry, to deleted other people' posts, a minimum reputation of %(min_rep)s " +"is required" +msgstr "" + +#: models/__init__.py:465 +msgid "Sorry, since your account is blocked you cannot close questions" +msgstr "" + +#: models/__init__.py:469 +msgid "Sorry, since your account is suspended you cannot close questions" +msgstr "" + +#: models/__init__.py:473 +#, python-format +msgid "" +"Sorry, to close other people' posts, a minimum reputation of %(min_rep)s is " +"required" +msgstr "" + +#: models/__init__.py:482 +#, python-format +msgid "" +"Sorry, to close own question a minimum reputation of %(min_rep)s is required" +msgstr "" + +#: models/__init__.py:506 +#, python-format +msgid "" +"Sorry, only administrators, moderators or post owners with reputation > %" +"(min_rep)s can reopen questions." +msgstr "" + +#: models/__init__.py:512 +#, python-format +msgid "" +"Sorry, to reopen own question a minimum reputation of %(min_rep)s is required" +msgstr "" + +#: models/__init__.py:532 +msgid "cannot flag message as offensive twice" +msgstr "You have flagged this question before and cannot do it more than once" + +#: models/__init__.py:537 +msgid "blocked users cannot flag posts" +msgstr "" +"Sorry, since your account is blocked you cannot flag posts as offensive" + +#: models/__init__.py:539 +msgid "suspended users cannot flag posts" +msgstr "" +"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." + +#: models/__init__.py:541 +#, python-format +msgid "need > %(min_rep)s points to flag spam" +msgstr "" +"Sorry, to flag posts as offensive a minimum reputation of %(min_rep)s is " +"required" + +#: models/__init__.py:562 +#, python-format +msgid "%(max_flags_per_day)s exceeded" +msgstr "" +"Sorry, you have exhausted the maximum number of %(max_flags_per_day)s " +"offensive flags per day." + +#: models/__init__.py:577 +msgid "" +"Sorry, only question owners, site administrators and moderators can retag " +"deleted questions" +msgstr "" + +#: models/__init__.py:584 +msgid "Sorry, since your account is blocked you cannot retag questions" +msgstr "" + +#: models/__init__.py:588 +msgid "" +"Sorry, since your account is suspended you can retag only your own questions" +msgstr "" + +#: models/__init__.py:592 +#, python-format +msgid "" +"Sorry, to retag questions a minimum reputation of %(min_rep)s is required" +msgstr "" + +#: models/__init__.py:611 +msgid "Sorry, since your account is blocked you cannot delete comment" +msgstr "" + +#: models/__init__.py:615 +msgid "" +"Sorry, since your account is suspended you can delete only your own comments" +msgstr "" + +#: models/__init__.py:619 +#, python-format +msgid "Sorry, to delete comments reputation of %(min_rep)s is required" +msgstr "" + +#: models/__init__.py:642 +msgid "cannot revoke old vote" +msgstr "sorry, but older votes cannot be revoked" + +#: models/__init__.py:1072 views/users.py:375 +msgid "Site Adminstrator" +msgstr "" + +#: models/__init__.py:1074 views/users.py:377 +msgid "Forum Moderator" +msgstr "" + +#: models/__init__.py:1076 views/users.py:379 +msgid "Suspended User" +msgstr "" + +#: models/__init__.py:1078 views/users.py:381 +msgid "Blocked User" +msgstr "" + +#: models/__init__.py:1080 views/users.py:383 +msgid "Registered User" +msgstr "" + +#: models/__init__.py:1082 +msgid "Watched User" +msgstr "" + +#: models/__init__.py:1084 +msgid "Approved User" +msgstr "" + +#: models/__init__.py:1566 +#, python-format +msgid "" +"Congratulations, you have received a badge '%(badge_name)s'. Check out <a " +"href=\"%(user_profile)s\">your profile</a>." +msgstr "" + +#: models/question.py:566 #, python-format msgid "%(author)s modified the question" msgstr "" -#: forum/models/question.py:535 +#: models/question.py:570 #, python-format msgid "%(people)s posted %(new_answer_count)s new answers" msgstr "" -#: forum/models/question.py:540 +#: models/question.py:575 #, python-format msgid "%(people)s commented the question" msgstr "" -#: forum/models/question.py:545 +#: models/question.py:580 #, python-format msgid "%(people)s commented answers" msgstr "" -#: forum/models/question.py:547 +#: models/question.py:582 #, python-format msgid "%(people)s commented an answer" msgstr "" -#: forum/models/repute.py:16 forum/skins/default/templates/badges.html:54 +#: models/repute.py:16 skins/default/templates/badges.html:54 msgid "gold" msgstr "" -#: forum/models/repute.py:17 forum/skins/default/templates/badges.html:62 +#: models/repute.py:17 skins/default/templates/badges.html:62 msgid "silver" msgstr "" -#: forum/models/repute.py:18 forum/skins/default/templates/badges.html:69 +#: models/repute.py:18 skins/default/templates/badges.html:69 msgid "bronze" msgstr "" -#: forum/models/tag.py:84 +#: models/repute.py:150 +#, python-format +msgid "<em>Changed by moderator. Reason:</em> %(reason)s" +msgstr "" + +#: models/repute.py:161 +#, python-format +msgid "" +"%(points)s points were added for %(username)s's contribution to question %" +"(question_title)s" +msgstr "" + +#: models/repute.py:166 +#, python-format +msgid "" +"%(points)s points were subtracted for %(username)s's contribution to " +"question %(question_title)s" +msgstr "" + +#: models/tag.py:75 msgid "interesting" msgstr "" -#: forum/models/tag.py:84 +#: models/tag.py:75 msgid "ignored" msgstr "" -#: forum/models/user.py:212 +#: models/user.py:192 msgid "Entire forum" msgstr "" -#: forum/models/user.py:213 +#: models/user.py:193 msgid "Questions that I asked" msgstr "" -#: forum/models/user.py:214 +#: models/user.py:194 msgid "Questions that I answered" msgstr "" -#: forum/models/user.py:215 +#: models/user.py:195 msgid "Individually selected questions" msgstr "" -#: forum/models/user.py:216 +#: models/user.py:196 msgid "Mentions and comment responses" msgstr "" -#: forum/models/user.py:219 +#: models/user.py:199 msgid "Instantly" msgstr "" -#: forum/models/user.py:220 +#: models/user.py:200 msgid "Daily" msgstr "" -#: forum/models/user.py:221 +#: models/user.py:201 msgid "Weekly" msgstr "" -#: forum/models/user.py:222 +#: models/user.py:202 msgid "No email" msgstr "" -#: forum/skins/default/templates/404.html:24 +#: skins/default/templates/404.html:24 msgid "Sorry, could not find the page you requested." msgstr "" -#: forum/skins/default/templates/404.html:26 +#: skins/default/templates/404.html:26 msgid "This might have happened for the following reasons:" msgstr "" -#: forum/skins/default/templates/404.html:28 +#: skins/default/templates/404.html:28 msgid "this question or answer has been deleted;" msgstr "" -#: forum/skins/default/templates/404.html:29 +#: skins/default/templates/404.html:29 msgid "url has error - please check it;" msgstr "" -#: forum/skins/default/templates/404.html:30 +#: skins/default/templates/404.html:30 msgid "" "the page you tried to visit is protected or you don't have sufficient " "points, see" msgstr "" -#: forum/skins/default/templates/404.html:31 +#: skins/default/templates/404.html:31 msgid "if you believe this error 404 should not have occured, please" msgstr "" -#: forum/skins/default/templates/404.html:32 +#: skins/default/templates/404.html:32 msgid "report this problem" msgstr "" -#: forum/skins/default/templates/404.html:41 -#: forum/skins/default/templates/500.html:27 +#: skins/default/templates/404.html:41 skins/default/templates/500.html:27 msgid "back to previous page" msgstr "" -#: forum/skins/default/templates/404.html:42 -#: forum/skins/default/templates/questions.html:52 +#: skins/default/templates/404.html:42 +#: skins/default/templates/questions.html:34 msgid "see all questions" msgstr "" -#: forum/skins/default/templates/404.html:43 +#: skins/default/templates/404.html:43 msgid "see all tags" msgstr "" -#: forum/skins/default/templates/500.html:22 +#: skins/default/templates/500.html:22 msgid "sorry, system error" msgstr "" -#: forum/skins/default/templates/500.html:24 +#: skins/default/templates/500.html:24 msgid "system error log is recorded, error will be fixed as soon as possible" msgstr "" -#: forum/skins/default/templates/500.html:25 +#: skins/default/templates/500.html:25 msgid "please report the error to the site administrators if you wish" msgstr "" -#: forum/skins/default/templates/500.html:28 +#: skins/default/templates/500.html:28 msgid "see latest questions" msgstr "" -#: forum/skins/default/templates/500.html:29 +#: skins/default/templates/500.html:29 msgid "see tags" msgstr "" -#: forum/skins/default/templates/about.html:6 -#: forum/skins/default/templates/about.html:11 +#: skins/default/templates/about.html:6 skins/default/templates/about.html:11 msgid "About" msgstr "" -#: forum/skins/default/templates/account_settings.html:4 -#: forum/skins/default/templates/authopenid/settings.html:4 +#: skins/default/templates/account_settings.html:4 +#: skins/default/templates/authopenid/settings.html:4 msgid "Account functions" msgstr "" -#: forum/skins/default/templates/account_settings.html:29 -#: forum/skins/default/templates/authopenid/changepw.html:5 -#: forum/skins/default/templates/authopenid/changepw.html:14 -#: forum/skins/default/templates/authopenid/settings.html:29 -#: livesettings/templates/livesettings/group_settings.html:11 -#: livesettings/templates/livesettings/site_settings.html:23 -msgid "Change password" -msgstr "" - -#: forum/skins/default/templates/account_settings.html:30 -#: forum/skins/default/templates/authopenid/settings.html:30 +#: skins/default/templates/account_settings.html:30 +#: skins/default/templates/authopenid/settings.html:30 msgid "Give your account a new password." msgstr "" -#: forum/skins/default/templates/account_settings.html:32 -#: forum/skins/default/templates/authopenid/settings.html:31 +#: skins/default/templates/account_settings.html:32 +#: skins/default/templates/authopenid/settings.html:31 msgid "Change email " msgstr "" -#: forum/skins/default/templates/account_settings.html:33 -#: forum/skins/default/templates/authopenid/settings.html:32 +#: skins/default/templates/account_settings.html:33 +#: skins/default/templates/authopenid/settings.html:32 msgid "Add or update the email address associated with your account." msgstr "" -#: forum/skins/default/templates/account_settings.html:35 -#: forum/skins/default/templates/authopenid/changeopenid.html:4 -#: forum/skins/default/templates/authopenid/changeopenid.html:30 -#: forum/skins/default/templates/authopenid/settings.html:34 +#: skins/default/templates/account_settings.html:35 +#: skins/default/templates/authopenid/changeopenid.html:4 +#: skins/default/templates/authopenid/changeopenid.html:30 +#: skins/default/templates/authopenid/settings.html:34 msgid "Change OpenID" msgstr "" -#: forum/skins/default/templates/account_settings.html:36 -#: forum/skins/default/templates/authopenid/settings.html:35 +#: skins/default/templates/account_settings.html:36 +#: skins/default/templates/authopenid/settings.html:35 msgid "Change openid associated to your account" msgstr "" -#: forum/skins/default/templates/account_settings.html:39 -#: forum/skins/default/templates/authopenid/delete.html:4 -#: forum/skins/default/templates/authopenid/settings.html:38 +#: skins/default/templates/account_settings.html:39 +#: skins/default/templates/authopenid/delete.html:4 +#: skins/default/templates/authopenid/settings.html:38 msgid "Delete account" msgstr "" -#: forum/skins/default/templates/account_settings.html:40 -#: forum/skins/default/templates/authopenid/settings.html:39 +#: skins/default/templates/account_settings.html:40 +#: skins/default/templates/authopenid/settings.html:39 msgid "Erase your username and all your data from website" msgstr "" -#: forum/skins/default/templates/answer_edit.html:5 -#: forum/skins/default/templates/answer_edit.html:48 +#: skins/default/templates/answer_edit.html:5 +#: skins/default/templates/answer_edit.html:48 msgid "Edit answer" msgstr "" -#: forum/skins/default/templates/answer_edit.html:25 -#: forum/skins/default/templates/answer_edit.html:28 -#: forum/skins/default/templates/ask.html:26 -#: forum/skins/default/templates/ask.html:29 -#: forum/skins/default/templates/question.html:48 -#: forum/skins/default/templates/question.html:51 -#: forum/skins/default/templates/question_edit.html:25 -#: forum/skins/default/templates/question_edit.html:28 +#: skins/default/templates/answer_edit.html:25 +#: skins/default/templates/answer_edit.html:28 +#: skins/default/templates/ask.html:26 skins/default/templates/ask.html:29 +#: skins/default/templates/question.html:48 +#: skins/default/templates/question.html:51 +#: skins/default/templates/question_edit.html:25 +#: skins/default/templates/question_edit.html:28 msgid "hide preview" msgstr "" -#: forum/skins/default/templates/answer_edit.html:28 -#: forum/skins/default/templates/ask.html:29 -#: forum/skins/default/templates/question.html:51 -#: forum/skins/default/templates/question_edit.html:28 +#: skins/default/templates/answer_edit.html:28 +#: skins/default/templates/ask.html:29 +#: skins/default/templates/question.html:51 +#: skins/default/templates/question_edit.html:28 msgid "show preview" msgstr "" -#: forum/skins/default/templates/answer_edit.html:48 -#: forum/skins/default/templates/question_edit.html:66 -#: forum/skins/default/templates/question_retag.html:53 -#: forum/skins/default/templates/revisions_answer.html:38 -#: forum/skins/default/templates/revisions_question.html:38 +#: skins/default/templates/answer_edit.html:48 +#: skins/default/templates/question_edit.html:66 +#: skins/default/templates/question_retag.html:53 +#: skins/default/templates/revisions_answer.html:38 +#: skins/default/templates/revisions_question.html:38 msgid "back" msgstr "" -#: forum/skins/default/templates/answer_edit.html:53 -#: forum/skins/default/templates/question_edit.html:71 -#: forum/skins/default/templates/revisions_answer.html:52 -#: forum/skins/default/templates/revisions_question.html:52 +#: skins/default/templates/answer_edit.html:53 +#: skins/default/templates/question_edit.html:71 +#: skins/default/templates/revisions_answer.html:52 +#: skins/default/templates/revisions_question.html:52 msgid "revision" msgstr "" -#: forum/skins/default/templates/answer_edit.html:56 -#: forum/skins/default/templates/question_edit.html:75 +#: skins/default/templates/answer_edit.html:56 +#: skins/default/templates/question_edit.html:76 msgid "select revision" msgstr "" -#: forum/skins/default/templates/answer_edit.html:63 -#: forum/skins/default/templates/ask.html:98 -#: forum/skins/default/templates/ask_form.html:39 -#: forum/skins/default/templates/question.html:420 -#: forum/skins/default/templates/question_edit.html:92 +#: skins/default/templates/answer_edit.html:63 +#: skins/default/templates/ask.html:98 +#: skins/default/templates/ask_form.html:39 +#: skins/default/templates/question.html:428 +#: skins/default/templates/question_edit.html:93 msgid "Toggle the real time Markdown editor preview" msgstr "" -#: forum/skins/default/templates/answer_edit.html:63 -#: forum/skins/default/templates/ask.html:98 -#: forum/skins/default/templates/ask_form.html:39 -#: forum/skins/default/templates/question.html:421 -#: forum/skins/default/templates/question_edit.html:92 +#: skins/default/templates/answer_edit.html:63 +#: skins/default/templates/ask.html:98 +#: skins/default/templates/ask_form.html:39 +#: skins/default/templates/question.html:429 +#: skins/default/templates/question_edit.html:93 msgid "toggle preview" msgstr "" -#: forum/skins/default/templates/answer_edit.html:72 -#: forum/skins/default/templates/question_edit.html:118 -#: forum/skins/default/templates/question_retag.html:74 +#: skins/default/templates/answer_edit.html:72 +#: skins/default/templates/question_edit.html:119 msgid "Save edit" msgstr "" -#: forum/skins/default/templates/answer_edit.html:73 -#: forum/skins/default/templates/close.html:29 -#: forum/skins/default/templates/feedback.html:50 -#: forum/skins/default/templates/question_edit.html:119 -#: forum/skins/default/templates/question_retag.html:75 -#: forum/skins/default/templates/reopen.html:30 -#: forum/skins/default/templates/user_edit.html:90 -#: forum/skins/default/templates/authopenid/changeemail.html:40 +#: skins/default/templates/answer_edit.html:73 +#: skins/default/templates/close.html:29 +#: skins/default/templates/feedback.html:50 +#: skins/default/templates/question_edit.html:120 +#: skins/default/templates/question_retag.html:75 +#: skins/default/templates/reopen.html:40 +#: skins/default/templates/user_edit.html:89 +#: skins/default/templates/authopenid/changeemail.html:40 msgid "Cancel" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:4 +#: skins/default/templates/answer_edit_tips.html:4 msgid "answer tips" msgstr "Tips" -#: forum/skins/default/templates/answer_edit_tips.html:7 +#: skins/default/templates/answer_edit_tips.html:7 msgid "please make your answer relevant to this community" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:10 +#: skins/default/templates/answer_edit_tips.html:10 msgid "try to give an answer, rather than engage into a discussion" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:13 +#: skins/default/templates/answer_edit_tips.html:13 msgid "please try to provide details" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:16 -#: forum/skins/default/templates/question_edit_tips.html:13 +#: skins/default/templates/answer_edit_tips.html:16 +#: skins/default/templates/question_edit_tips.html:13 msgid "be clear and concise" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:20 -#: forum/skins/default/templates/question_edit_tips.html:17 +#: skins/default/templates/answer_edit_tips.html:20 +#: skins/default/templates/question_edit_tips.html:17 msgid "see frequently asked questions" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:26 -#: forum/skins/default/templates/question_edit_tips.html:23 +#: skins/default/templates/answer_edit_tips.html:26 +#: skins/default/templates/question_edit_tips.html:23 msgid "Markdown tips" msgstr "Markdown basics" -#: forum/skins/default/templates/answer_edit_tips.html:29 -#: forum/skins/default/templates/question_edit_tips.html:26 +#: skins/default/templates/answer_edit_tips.html:29 +#: skins/default/templates/question_edit_tips.html:26 msgid "*italic* or __italic__" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:32 -#: forum/skins/default/templates/question_edit_tips.html:29 +#: skins/default/templates/answer_edit_tips.html:32 +#: skins/default/templates/question_edit_tips.html:29 msgid "**bold** or __bold__" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:35 -#: forum/skins/default/templates/question_edit_tips.html:32 +#: skins/default/templates/answer_edit_tips.html:35 +#: skins/default/templates/question_edit_tips.html:32 msgid "link" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:35 -#: forum/skins/default/templates/answer_edit_tips.html:39 -#: forum/skins/default/templates/question_edit_tips.html:32 -#: forum/skins/default/templates/question_edit_tips.html:37 +#: skins/default/templates/answer_edit_tips.html:35 +#: skins/default/templates/answer_edit_tips.html:39 +#: skins/default/templates/question_edit_tips.html:32 +#: skins/default/templates/question_edit_tips.html:37 msgid "text" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:39 -#: forum/skins/default/templates/question_edit_tips.html:37 +#: skins/default/templates/answer_edit_tips.html:39 +#: skins/default/templates/question_edit_tips.html:37 msgid "image" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:43 -#: forum/skins/default/templates/question_edit_tips.html:41 +#: skins/default/templates/answer_edit_tips.html:43 +#: skins/default/templates/question_edit_tips.html:41 msgid "numbered list:" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:48 -#: forum/skins/default/templates/question_edit_tips.html:46 +#: skins/default/templates/answer_edit_tips.html:48 +#: skins/default/templates/question_edit_tips.html:46 msgid "basic HTML tags are also supported" msgstr "" -#: forum/skins/default/templates/answer_edit_tips.html:52 -#: forum/skins/default/templates/question_edit_tips.html:50 +#: skins/default/templates/answer_edit_tips.html:52 +#: skins/default/templates/question_edit_tips.html:50 msgid "learn more about Markdown" msgstr "" -#: forum/skins/default/templates/ask.html:5 -#: forum/skins/default/templates/ask.html:62 +#: skins/default/templates/ask.html:5 skins/default/templates/ask.html:62 msgid "Ask a question" msgstr "" -#: forum/skins/default/templates/ask.html:69 -#: forum/skins/default/templates/ask_form.html:11 +#: skins/default/templates/ask.html:69 +#: skins/default/templates/ask_form.html:11 msgid "login to post question info" msgstr "" "<span class=\"strong big\">You are welcome to start submitting your question " @@ -2192,7 +2603,7 @@ msgstr "" "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." -#: forum/skins/default/templates/ask.html:75 +#: skins/default/templates/ask.html:75 #, python-format msgid "" "must have valid %(email)s to post, \n" @@ -2205,22 +2616,22 @@ msgstr "" "<br>You can submit your question now and validate email after that. Your " "question will saved as pending meanwhile. " -#: forum/skins/default/templates/ask.html:113 -#: forum/skins/default/templates/ask_form.html:54 +#: skins/default/templates/ask.html:113 +#: skins/default/templates/ask_form.html:54 msgid "(required)" msgstr "" -#: forum/skins/default/templates/ask.html:120 -#: forum/skins/default/templates/ask_form.html:61 +#: skins/default/templates/ask.html:120 +#: skins/default/templates/ask_form.html:61 msgid "Login/signup to post your question" msgstr "Login/Signup to Post" -#: forum/skins/default/templates/ask.html:122 -#: forum/skins/default/templates/ask_form.html:63 +#: skins/default/templates/ask.html:122 +#: skins/default/templates/ask_form.html:63 msgid "Ask your question" msgstr "Ask Your Question" -#: forum/skins/default/templates/ask_form.html:15 +#: skins/default/templates/ask_form.html:15 #, python-format msgid "" "must have valid %(email)s to post, \n" @@ -2233,32 +2644,31 @@ msgstr "" "<br>You can submit your question now and validate email after that. Your " "question will saved as pending meanwhile. " -#: forum/skins/default/templates/badge.html:6 -#: forum/skins/default/templates/badge.html:17 +#: skins/default/templates/badge.html:6 skins/default/templates/badge.html:17 msgid "Badge" msgstr "" -#: forum/skins/default/templates/badge.html:26 +#: skins/default/templates/badge.html:26 msgid "user received this badge:" msgid_plural "users received this badge:" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/badges.html:6 +#: skins/default/templates/badges.html:6 msgid "Badges summary" msgstr "" -#: forum/skins/default/templates/badges.html:17 +#: skins/default/templates/badges.html:17 msgid "Badges" msgstr "" -#: forum/skins/default/templates/badges.html:21 +#: skins/default/templates/badges.html:21 msgid "Community gives you awards for your questions, answers and votes." msgstr "" "If your questions and answers are highly voted, your contribution to this " "Q&A community will be recognized with the variety of badges." -#: forum/skins/default/templates/badges.html:22 +#: skins/default/templates/badges.html:22 #, python-format msgid "" "Below is the list of available badges and number \n" @@ -2270,169 +2680,174 @@ msgstr "" " of times each type of badge has been awarded. Have ideas about fun " "badges? Please, give us your <a href='%(feedback_faq_url)s'>feedback</a>" -#: forum/skins/default/templates/badges.html:51 +#: skins/default/templates/badges.html:51 msgid "Community badges" msgstr "Badge levels" -#: forum/skins/default/templates/badges.html:57 +#: skins/default/templates/badges.html:57 msgid "gold badge description" msgstr "" "Gold badge is the highest award in this community. To obtain it have to show " "profound knowledge and ability in addition to your active participation." -#: forum/skins/default/templates/badges.html:65 +#: skins/default/templates/badges.html:65 msgid "silver badge description" msgstr "" "Obtaining silver badge requires significant patience. If you have received " "one, that means you have greatly contributed to this community." -#: forum/skins/default/templates/badges.html:68 +#: skins/default/templates/badges.html:68 msgid "bronze badge: often given as a special honor" msgstr "" -#: forum/skins/default/templates/badges.html:72 +#: skins/default/templates/badges.html:72 msgid "bronze badge description" msgstr "" "If you are an active participant in this community, you will be recognized " "with this badge." -#: forum/skins/default/templates/book.html:7 +#: skins/default/templates/book.html:7 msgid "reading channel" msgstr "" -#: forum/skins/default/templates/book.html:26 +#: skins/default/templates/book.html:26 msgid "[author]" msgstr "" -#: forum/skins/default/templates/book.html:30 +#: skins/default/templates/book.html:30 msgid "[publisher]" msgstr "" -#: forum/skins/default/templates/book.html:34 +#: skins/default/templates/book.html:34 msgid "[publication date]" msgstr "" -#: forum/skins/default/templates/book.html:38 +#: skins/default/templates/book.html:38 msgid "[price]" msgstr "" -#: forum/skins/default/templates/book.html:39 +#: skins/default/templates/book.html:39 msgid "currency unit" msgstr "" -#: forum/skins/default/templates/book.html:42 +#: skins/default/templates/book.html:42 msgid "[pages]" msgstr "" -#: forum/skins/default/templates/book.html:43 +#: skins/default/templates/book.html:43 msgid "pages abbreviation" msgstr "" -#: forum/skins/default/templates/book.html:46 +#: skins/default/templates/book.html:46 msgid "[tags]" msgstr "" -#: forum/skins/default/templates/book.html:56 +#: skins/default/templates/book.html:56 msgid "author blog" msgstr "" -#: forum/skins/default/templates/book.html:62 +#: skins/default/templates/book.html:62 msgid "book directory" msgstr "" -#: forum/skins/default/templates/book.html:66 +#: skins/default/templates/book.html:66 msgid "buy online" msgstr "" -#: forum/skins/default/templates/book.html:79 +#: skins/default/templates/book.html:79 msgid "reader questions" msgstr "" -#: forum/skins/default/templates/book.html:82 +#: skins/default/templates/book.html:82 msgid "ask the author" msgstr "" -#: forum/skins/default/templates/book.html:88 -#: forum/skins/default/templates/book.html:93 -#: forum/skins/default/templates/users_questions.html:18 +#: skins/default/templates/book.html:88 skins/default/templates/book.html:93 +#: skins/default/templates/users_questions.html:18 msgid "this question was selected as favorite" msgstr "" -#: forum/skins/default/templates/book.html:88 -#: forum/skins/default/templates/book.html:93 -#: forum/skins/default/templates/users_questions.html:11 -#: forum/skins/default/templates/users_questions.html:18 +#: skins/default/templates/book.html:88 skins/default/templates/book.html:93 +#: skins/default/templates/users_questions.html:11 +#: skins/default/templates/users_questions.html:18 msgid "number of times" msgstr "" -#: forum/skins/default/templates/book.html:105 -#: forum/skins/default/templates/question_summary_list_roll.html:14 +#: skins/default/templates/book.html:105 +#: skins/default/templates/question_summary_list_roll.html:14 msgid "votes" msgstr "" -#: forum/skins/default/templates/book.html:108 +#: skins/default/templates/book.html:108 msgid "the answer has been accepted to be correct" msgstr "" -#: forum/skins/default/templates/book.html:115 -#: forum/skins/default/templates/question_summary_list_roll.html:15 +#: skins/default/templates/book.html:110 +#: skins/default/templates/questions.html:206 +msgid "answer" +msgstr "" + +#: skins/default/templates/book.html:115 +#: skins/default/templates/question_summary_list_roll.html:15 msgid "views" msgstr "" -#: forum/skins/default/templates/book.html:125 -#: forum/skins/default/templates/question.html:138 -#: forum/skins/default/templates/question_list.html:19 -#: forum/skins/default/templates/question_summary_list_roll.html:52 -#: forum/skins/default/templates/tags.html:50 -#: forum/skins/default/templates/users_questions.html:34 +#: skins/default/templates/book.html:125 +#: skins/default/templates/question.html:138 +#: skins/default/templates/question_list.html:64 +#: skins/default/templates/question_summary_list_roll.html:52 +#: skins/default/templates/questions.html:227 +#: skins/default/templates/tags.html:50 +#: skins/default/templates/users_questions.html:80 #, python-format msgid "see questions tagged '%(tag)s'" msgstr "" -#: forum/skins/default/templates/book.html:147 +#: skins/default/templates/book.html:147 msgid "subscribe to book RSS feed" msgstr "" -#: forum/skins/default/templates/book.html:147 +#: skins/default/templates/book.html:147 +#: skins/default/templates/questions.html:125 +#: skins/default/templates/questions.html:128 msgid "subscribe to the questions feed" msgstr "" -#: forum/skins/default/templates/close.html:6 -#: forum/skins/default/templates/close.html:16 +#: skins/default/templates/close.html:6 skins/default/templates/close.html:16 msgid "Close question" msgstr "" -#: forum/skins/default/templates/close.html:19 +#: skins/default/templates/close.html:19 msgid "Close the question" msgstr "" -#: forum/skins/default/templates/close.html:25 +#: skins/default/templates/close.html:25 msgid "Reasons" msgstr "" -#: forum/skins/default/templates/close.html:28 +#: skins/default/templates/close.html:28 msgid "OK to close" msgstr "" -#: forum/skins/default/templates/email_base.html:11 +#: skins/default/templates/email_base.html:11 msgid "home" msgstr "" -#: forum/skins/default/templates/faq.html:12 +#: skins/default/templates/faq.html:12 msgid "Frequently Asked Questions " msgstr "" -#: forum/skins/default/templates/faq.html:17 +#: skins/default/templates/faq.html:17 msgid "What kinds of questions can I ask here?" msgstr "" -#: forum/skins/default/templates/faq.html:18 +#: skins/default/templates/faq.html:18 msgid "" "Most importanly - questions should be <strong>relevant</strong> to this " "community." msgstr "" -#: forum/skins/default/templates/faq.html:19 +#: skins/default/templates/faq.html:19 msgid "" "Before asking the question - please make sure to use search to see whether " "your question has alredy been answered." @@ -2440,21 +2855,21 @@ msgstr "" "Before you ask - please make sure to search for a similar question. You can " "search questions by their title or tags." -#: forum/skins/default/templates/faq.html:22 +#: skins/default/templates/faq.html:22 msgid "What questions should I avoid asking?" msgstr "What kinds of questions should be avoided?" -#: forum/skins/default/templates/faq.html:23 +#: skins/default/templates/faq.html:23 msgid "" "Please avoid asking questions that are not relevant to this community, too " "subjective and argumentative." msgstr "" -#: forum/skins/default/templates/faq.html:28 +#: skins/default/templates/faq.html:28 msgid "What should I avoid in my answers?" msgstr "" -#: forum/skins/default/templates/faq.html:29 +#: skins/default/templates/faq.html:29 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 " @@ -2465,19 +2880,19 @@ msgstr "" "they tend to dilute the essense of questions and answers. For the brief " "discussions please use commenting facility." -#: forum/skins/default/templates/faq.html:33 +#: skins/default/templates/faq.html:33 msgid "Who moderates this community?" msgstr "" -#: forum/skins/default/templates/faq.html:34 +#: skins/default/templates/faq.html:34 msgid "The short answer is: <strong>you</strong>." msgstr "" -#: forum/skins/default/templates/faq.html:35 +#: skins/default/templates/faq.html:35 msgid "This website is moderated by the users." msgstr "" -#: forum/skins/default/templates/faq.html:36 +#: skins/default/templates/faq.html:36 msgid "" "The reputation system allows users earn the authorization to perform a " "variety of moderation tasks." @@ -2485,11 +2900,11 @@ msgstr "" "Karma system allows users to earn rights to perform a variety of moderation " "tasks" -#: forum/skins/default/templates/faq.html:41 +#: skins/default/templates/faq.html:41 msgid "How does reputation system work?" msgstr "How does karma system work?" -#: forum/skins/default/templates/faq.html:42 +#: skins/default/templates/faq.html:42 msgid "Rep system summary" msgstr "" "When a question or answer is upvoted, the user who posted them will gain " @@ -2497,7 +2912,7 @@ msgstr "" "rough measure of the community trust to him/her. Various moderation tasks " "are gradually assigned to the users based on those points." -#: forum/skins/default/templates/faq.html:43 +#: skins/default/templates/faq.html:43 #, python-format msgid "" "For example, if you ask an interesting question or give a helpful answer, " @@ -2510,49 +2925,49 @@ msgid "" "explains reputation point requirements for each type of moderation task." msgstr "" -#: forum/skins/default/templates/faq.html:53 -#: forum/skins/default/templates/user_votes.html:15 +#: skins/default/templates/faq.html:53 +#: skins/default/templates/user_votes.html:15 msgid "upvote" msgstr "" -#: forum/skins/default/templates/faq.html:58 +#: skins/default/templates/faq.html:58 msgid "use tags" msgstr "" -#: forum/skins/default/templates/faq.html:63 +#: skins/default/templates/faq.html:63 msgid "add comments" msgstr "" -#: forum/skins/default/templates/faq.html:67 -#: forum/skins/default/templates/user_votes.html:17 +#: skins/default/templates/faq.html:67 +#: skins/default/templates/user_votes.html:17 msgid "downvote" msgstr "" -#: forum/skins/default/templates/faq.html:70 +#: skins/default/templates/faq.html:70 msgid "open and close own questions" msgstr "" -#: forum/skins/default/templates/faq.html:74 +#: skins/default/templates/faq.html:74 msgid "retag questions" msgstr "" -#: forum/skins/default/templates/faq.html:79 +#: skins/default/templates/faq.html:79 msgid "edit community wiki questions" msgstr "" -#: forum/skins/default/templates/faq.html:84 +#: skins/default/templates/faq.html:84 msgid "edit any answer" msgstr "" -#: forum/skins/default/templates/faq.html:88 +#: skins/default/templates/faq.html:88 msgid "delete any comment" msgstr "" -#: forum/skins/default/templates/faq.html:95 +#: skins/default/templates/faq.html:95 msgid "how to validate email title" msgstr "How to validate email and why?" -#: forum/skins/default/templates/faq.html:97 +#: skins/default/templates/faq.html:97 #, python-format msgid "" "how to validate email info with %(send_email_key_url)s %(gravatar_faq_url)s" @@ -2570,11 +2985,11 @@ msgstr "" "Also, when you sign up for the first time - create a unique <a href='%" "(gravatar_faq_url)s'><strong>gravatar</strong></a> personal image.</p>" -#: forum/skins/default/templates/faq.html:102 +#: skins/default/templates/faq.html:102 msgid "what is gravatar" msgstr "How to change my picture (gravatar) and what is gravatar?" -#: forum/skins/default/templates/faq.html:103 +#: skins/default/templates/faq.html:103 msgid "gravatar faq info" msgstr "" "<p>The picture that appears on the users profiles is called " @@ -2591,44 +3006,44 @@ msgstr "" "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>" -#: forum/skins/default/templates/faq.html:106 +#: skins/default/templates/faq.html:106 msgid "To register, do I need to create new password?" msgstr "" -#: forum/skins/default/templates/faq.html:107 +#: skins/default/templates/faq.html:107 msgid "" "No, you don't have to. You can login through any service that supports " "OpenID, e.g. Google, Yahoo, AOL, etc." msgstr "" -#: forum/skins/default/templates/faq.html:108 +#: skins/default/templates/faq.html:108 msgid "Login now!" msgstr "" -#: forum/skins/default/templates/faq.html:113 +#: skins/default/templates/faq.html:113 msgid "Why other people can edit my questions/answers?" msgstr "" -#: forum/skins/default/templates/faq.html:114 +#: skins/default/templates/faq.html:114 msgid "Goal of this site is..." msgstr "" -#: forum/skins/default/templates/faq.html:114 +#: skins/default/templates/faq.html:114 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 " "content." msgstr "" -#: forum/skins/default/templates/faq.html:115 +#: skins/default/templates/faq.html:115 msgid "If this approach is not for you, we respect your choice." msgstr "" -#: forum/skins/default/templates/faq.html:119 +#: skins/default/templates/faq.html:119 msgid "Still have questions?" msgstr "" -#: forum/skins/default/templates/faq.html:120 +#: skins/default/templates/faq.html:120 #, python-format msgid "" "Please ask your question at %(ask_question_url)s, help make our community " @@ -2637,24 +3052,23 @@ msgstr "" "Please <a href='%(ask_question_url)s'>ask</a> your question, help make our " "community better!" -#: forum/skins/default/templates/faq.html:122 -#: forum/skins/default/templates/header.html:27 +#: skins/default/templates/faq.html:122 skins/default/templates/header.html:42 msgid "questions" msgstr "" -#: forum/skins/default/templates/faq.html:122 +#: skins/default/templates/faq.html:122 msgid "." msgstr "" -#: forum/skins/default/templates/feedback.html:6 +#: skins/default/templates/feedback.html:6 msgid "Feedback" msgstr "" -#: forum/skins/default/templates/feedback.html:11 +#: skins/default/templates/feedback.html:11 msgid "Give us your feedback!" msgstr "" -#: forum/skins/default/templates/feedback.html:17 +#: skins/default/templates/feedback.html:17 #, python-format msgid "" "\n" @@ -2664,7 +3078,7 @@ msgid "" " " msgstr "" -#: forum/skins/default/templates/feedback.html:24 +#: skins/default/templates/feedback.html:24 msgid "" "\n" " <span class='big strong'>Dear visitor</span>, we look forward to " @@ -2673,92 +3087,107 @@ msgid "" " " msgstr "" -#: forum/skins/default/templates/feedback.html:41 +#: skins/default/templates/feedback.html:41 msgid "(this field is required)" msgstr "" -#: forum/skins/default/templates/feedback.html:49 +#: skins/default/templates/feedback.html:49 msgid "Send Feedback" msgstr "" -#: forum/skins/default/templates/feedback_email.txt:3 +#: skins/default/templates/feedback_email.txt:3 #, python-format msgid "" "\n" "Hello, this is a %(site_title)s forum feedback message\n" msgstr "" -#: forum/skins/default/templates/feedback_email.txt:9 +#: skins/default/templates/feedback_email.txt:9 msgid "Sender is" msgstr "" -#: forum/skins/default/templates/feedback_email.txt:11 -#: forum/skins/default/templates/feedback_email.txt:14 +#: skins/default/templates/feedback_email.txt:11 +#: skins/default/templates/feedback_email.txt:14 msgid "email" msgstr "" -#: forum/skins/default/templates/feedback_email.txt:13 +#: skins/default/templates/feedback_email.txt:13 msgid "anonymous" msgstr "" -#: forum/skins/default/templates/feedback_email.txt:19 +#: skins/default/templates/feedback_email.txt:19 msgid "Message body:" msgstr "" -#: forum/skins/default/templates/footer.html:8 -#: forum/skins/default/templates/header.html:14 +#: skins/default/templates/footer.html:8 +#: skins/default/templates/header.html:29 msgid "about" msgstr "" -#: forum/skins/default/templates/footer.html:9 -#: forum/skins/default/templates/header.html:15 -#: forum/skins/default/templates/question_edit_tips.html:17 +#: skins/default/templates/footer.html:9 +#: skins/default/templates/header.html:30 +#: skins/default/templates/question_edit_tips.html:17 msgid "faq" msgstr "" -#: forum/skins/default/templates/footer.html:10 +#: skins/default/templates/footer.html:10 msgid "privacy policy" msgstr "" -#: forum/skins/default/templates/footer.html:19 +#: skins/default/templates/footer.html:19 msgid "give feedback" msgstr "" -#: forum/skins/default/templates/header.html:10 +#: skins/default/templates/header.html:13 +#, python-format +msgid "responses for %(username)s" +msgstr "" + +#: skins/default/templates/header.html:16 +#, python-format +msgid "you have a new response" +msgid_plural "you nave %(response_count)s new responses" +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/header.html:19 +msgid "no new responses yet" +msgstr "" + +#: skins/default/templates/header.html:25 msgid "logout" msgstr "sign out" -#: forum/skins/default/templates/header.html:12 +#: skins/default/templates/header.html:27 msgid "login" msgstr "Hi, there! Please sign in" -#: forum/skins/default/templates/header.html:22 +#: skins/default/templates/header.html:37 msgid "back to home page" msgstr "" -#: forum/skins/default/templates/header.html:29 +#: skins/default/templates/header.html:44 msgid "users" msgstr "people" -#: forum/skins/default/templates/header.html:30 -#: forum/templatetags/extra_tags.py:177 forum/templatetags/extra_tags.py:206 +#: skins/default/templates/header.html:45 msgid "badges" msgstr "" -#: forum/skins/default/templates/header.html:31 +#: skins/default/templates/header.html:46 msgid "ask a question" msgstr "" -#: forum/skins/default/templates/input_bar.html:33 +#: skins/default/templates/input_bar.html:33 msgid "search" msgstr "" -#: forum/skins/default/templates/instant_notification.html:3 +#: skins/default/templates/instant_notification.html:3 #, python-format msgid "<p>Dear %(receiving_user_name)s,</p>" msgstr "" -#: forum/skins/default/templates/instant_notification.html:6 +#: skins/default/templates/instant_notification.html:5 #, python-format msgid "" "\n" @@ -2766,7 +3195,7 @@ msgid "" "for question \"%(origin_post_title)s\"</p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:12 +#: skins/default/templates/instant_notification.html:11 #, python-format msgid "" "\n" @@ -2774,7 +3203,7 @@ msgid "" " for an answer to question \"%(origin_post_title)s\"</p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:18 +#: skins/default/templates/instant_notification.html:17 #, python-format msgid "" "\n" @@ -2782,15 +3211,15 @@ msgid "" "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:24 +#: skins/default/templates/instant_notification.html:23 #, python-format msgid "" "\n" -"<p>%(update_author_name)s asked a question \n" +"<p>%(update_author_name)s posted a new question \n" "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:29 +#: skins/default/templates/instant_notification.html:29 #, python-format msgid "" "\n" @@ -2798,7 +3227,7 @@ msgid "" "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:34 +#: skins/default/templates/instant_notification.html:35 #, python-format msgid "" "\n" @@ -2806,25 +3235,26 @@ msgid "" "<a href=\"%(post_url)s\">%(origin_post_title)s</a></p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:40 +#: skins/default/templates/instant_notification.html:41 #, python-format msgid "" "\n" "<p>Please note - you can easily <a href=\"%(user_subscriptions_url)s" "\">change</a>\n" -"how often you receive these notifications.</p>\n" +"how often you receive these notifications or unsubscribe. Thank you for your " +"interest in our forum!</p>\n" msgstr "" -#: forum/skins/default/templates/instant_notification.html:44 +#: skins/default/templates/instant_notification.html:45 msgid "<p>Sincerely,<br/>Forum Administrator</p>" msgstr "" -#: forum/skins/default/templates/logout.html:6 -#: forum/skins/default/templates/logout.html:16 +#: skins/default/templates/logout.html:6 +#: skins/default/templates/logout.html:16 msgid "Logout" msgstr "" -#: forum/skins/default/templates/logout.html:19 +#: skins/default/templates/logout.html:19 msgid "" "As a registered user you can login with your OpenID, log out of the site or " "permanently remove your account." @@ -2833,150 +3263,154 @@ msgstr "" "sign you off from your OpenID provider.</p><p>If you wish to sign off " "completely - please make sure to log out from your OpenID provider as well." -#: forum/skins/default/templates/logout.html:20 +#: skins/default/templates/logout.html:20 msgid "Logout now" msgstr "Logout Now" -#: forum/skins/default/templates/notarobot.html:3 +#: skins/default/templates/notarobot.html:3 msgid "Please prove that you are a Human Being" msgstr "" -#: forum/skins/default/templates/notarobot.html:10 +#: skins/default/templates/notarobot.html:10 msgid "I am a Human Being" msgstr "" -#: forum/skins/default/templates/pagesize.html:6 +#: skins/default/templates/pagesize.html:6 msgid "posts per page" msgstr "" -#: forum/skins/default/templates/paginator.html:6 -#: forum/skins/default/templates/paginator.html:7 +#: skins/default/templates/paginator.html:6 +#: skins/default/templates/paginator.html:7 msgid "previous" msgstr "" -#: forum/skins/default/templates/paginator.html:19 +#: skins/default/templates/paginator.html:19 msgid "current page" msgstr "" -#: forum/skins/default/templates/paginator.html:22 -#: forum/skins/default/templates/paginator.html:29 +#: skins/default/templates/paginator.html:22 +#: skins/default/templates/paginator.html:29 #, python-format msgid "page number %(num)s" msgstr "page %(num)s" -#: forum/skins/default/templates/paginator.html:33 +#: skins/default/templates/paginator.html:33 msgid "next page" msgstr "" -#: forum/skins/default/templates/post_contributor_info.html:9 +#: skins/default/templates/post_contributor_info.html:9 #, python-format msgid "%(rev_count)s revision" msgid_plural "%(rev_count)s revisions" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/post_contributor_info.html:15 +#: skins/default/templates/post_contributor_info.html:15 msgid "asked" msgstr "" -#: forum/skins/default/templates/post_contributor_info.html:18 +#: skins/default/templates/post_contributor_info.html:18 msgid "answered" msgstr "" -#: forum/skins/default/templates/post_contributor_info.html:20 +#: skins/default/templates/post_contributor_info.html:20 msgid "posted" msgstr "" -#: forum/skins/default/templates/post_contributor_info.html:41 +#: skins/default/templates/post_contributor_info.html:41 msgid "updated" msgstr "" -#: forum/skins/default/templates/privacy.html:6 -#: forum/skins/default/templates/privacy.html:11 +#: skins/default/templates/privacy.html:6 +#: skins/default/templates/privacy.html:11 msgid "Privacy policy" msgstr "" -#: forum/skins/default/templates/question.html:80 -#: forum/skins/default/templates/question.html:81 -#: forum/skins/default/templates/question.html:97 -#: forum/skins/default/templates/question.html:99 +#: skins/default/templates/question.html:80 +#: skins/default/templates/question.html:81 +#: skins/default/templates/question.html:97 +#: skins/default/templates/question.html:99 msgid "i like this post (click again to cancel)" msgstr "" -#: forum/skins/default/templates/question.html:83 -#: forum/skins/default/templates/question.html:101 -#: forum/skins/default/templates/question.html:253 +#: skins/default/templates/question.html:83 +#: skins/default/templates/question.html:101 +#: skins/default/templates/question.html:261 msgid "current number of votes" msgstr "" -#: forum/skins/default/templates/question.html:92 -#: forum/skins/default/templates/question.html:93 -#: forum/skins/default/templates/question.html:106 -#: forum/skins/default/templates/question.html:107 +#: skins/default/templates/question.html:92 +#: skins/default/templates/question.html:93 +#: skins/default/templates/question.html:106 +#: skins/default/templates/question.html:107 msgid "i dont like this post (click again to cancel)" msgstr "" -#: forum/skins/default/templates/question.html:111 -#: forum/skins/default/templates/question.html:112 +#: skins/default/templates/question.html:111 +#: skins/default/templates/question.html:112 msgid "mark this question as favorite (click again to cancel)" msgstr "" -#: forum/skins/default/templates/question.html:118 -#: forum/skins/default/templates/question.html:119 +#: skins/default/templates/question.html:118 +#: skins/default/templates/question.html:119 msgid "remove favorite mark from this question (click again to restore mark)" msgstr "" -#: forum/skins/default/templates/question.html:143 -#: forum/skins/default/templates/question.html:290 -#: forum/skins/default/templates/revisions_answer.html:58 -#: forum/skins/default/templates/revisions_question.html:58 +#: skins/default/templates/question.html:144 +#: skins/default/templates/question.html:298 +#: skins/default/templates/revisions_answer.html:58 +#: skins/default/templates/revisions_question.html:58 msgid "edit" msgstr "" -#: forum/skins/default/templates/question.html:148 +#: skins/default/templates/question.html:149 +msgid "retag" +msgstr "" + +#: skins/default/templates/question.html:156 msgid "reopen" msgstr "" -#: forum/skins/default/templates/question.html:152 +#: skins/default/templates/question.html:160 msgid "close" msgstr "" -#: forum/skins/default/templates/question.html:158 -#: forum/skins/default/templates/question.html:295 +#: skins/default/templates/question.html:166 +#: skins/default/templates/question.html:303 msgid "" "report as offensive (i.e containing spam, advertising, malicious text, etc.)" msgstr "" -#: forum/skins/default/templates/question.html:159 -#: forum/skins/default/templates/question.html:296 +#: skins/default/templates/question.html:167 +#: skins/default/templates/question.html:304 msgid "flag offensive" msgstr "" -#: forum/skins/default/templates/question.html:167 -#: forum/skins/default/templates/question.html:307 +#: skins/default/templates/question.html:175 +#: skins/default/templates/question.html:315 msgid "delete" msgstr "" -#: forum/skins/default/templates/question.html:185 -#: forum/skins/default/templates/question.html:327 +#: skins/default/templates/question.html:193 +#: skins/default/templates/question.html:335 msgid "delete this comment" msgstr "" -#: forum/skins/default/templates/question.html:196 -#: forum/skins/default/templates/question.html:338 +#: skins/default/templates/question.html:204 +#: skins/default/templates/question.html:346 msgid "add comment" msgstr "post a comment" -#: forum/skins/default/templates/question.html:200 -#: forum/skins/default/templates/question.html:342 +#: skins/default/templates/question.html:208 +#: skins/default/templates/question.html:350 #, python-format msgid "see <strong>%(counter)s</strong> more" msgid_plural "see <strong>%(counter)s</strong> more" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question.html:202 -#: forum/skins/default/templates/question.html:344 +#: skins/default/templates/question.html:210 +#: skins/default/templates/question.html:352 #, python-format msgid "see <strong>%(counter)s</strong> more comment" msgid_plural "" @@ -2985,18 +3419,18 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question.html:215 +#: skins/default/templates/question.html:223 #, python-format msgid "" "The question has been closed for the following reason \"%(close_reason)s\" by" msgstr "" -#: forum/skins/default/templates/question.html:217 +#: skins/default/templates/question.html:225 #, python-format msgid "close date %(closed_at)s" msgstr "" -#: forum/skins/default/templates/question.html:225 +#: skins/default/templates/question.html:233 #, python-format msgid "" "\n" @@ -3009,75 +3443,75 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question.html:233 +#: skins/default/templates/question.html:241 msgid "oldest answers will be shown first" msgstr "" -#: forum/skins/default/templates/question.html:233 +#: skins/default/templates/question.html:241 msgid "oldest answers" msgstr "oldest" -#: forum/skins/default/templates/question.html:235 +#: skins/default/templates/question.html:243 msgid "newest answers will be shown first" msgstr "" -#: forum/skins/default/templates/question.html:235 +#: skins/default/templates/question.html:243 msgid "newest answers" msgstr "newest" -#: forum/skins/default/templates/question.html:237 +#: skins/default/templates/question.html:245 msgid "most voted answers will be shown first" msgstr "" -#: forum/skins/default/templates/question.html:237 +#: skins/default/templates/question.html:245 msgid "popular answers" msgstr "most voted" -#: forum/skins/default/templates/question.html:251 -#: forum/skins/default/templates/question.html:252 +#: skins/default/templates/question.html:259 +#: skins/default/templates/question.html:260 msgid "i like this answer (click again to cancel)" msgstr "" -#: forum/skins/default/templates/question.html:258 -#: forum/skins/default/templates/question.html:259 +#: skins/default/templates/question.html:266 +#: skins/default/templates/question.html:267 msgid "i dont like this answer (click again to cancel)" msgstr "" -#: forum/skins/default/templates/question.html:264 -#: forum/skins/default/templates/question.html:265 +#: skins/default/templates/question.html:272 +#: skins/default/templates/question.html:273 msgid "mark this answer as favorite (click again to undo)" msgstr "" -#: forum/skins/default/templates/question.html:270 -#: forum/skins/default/templates/question.html:271 +#: skins/default/templates/question.html:278 +#: skins/default/templates/question.html:279 msgid "the author of the question has selected this answer as correct" msgstr "" -#: forum/skins/default/templates/question.html:284 +#: skins/default/templates/question.html:292 msgid "answer permanent link" msgstr "" -#: forum/skins/default/templates/question.html:285 +#: skins/default/templates/question.html:293 msgid "permanent link" msgstr "link" -#: forum/skins/default/templates/question.html:307 +#: skins/default/templates/question.html:315 msgid "undelete" msgstr "" -#: forum/skins/default/templates/question.html:366 -#: forum/skins/default/templates/question.html:369 +#: skins/default/templates/question.html:374 +#: skins/default/templates/question.html:377 msgid "Notify me once a day when there are any new answers" msgstr "" "<strong>Notify me</strong> once a day by email when there are any new " "answers or updates" -#: forum/skins/default/templates/question.html:372 +#: skins/default/templates/question.html:380 msgid "Notify me weekly when there are any new answers" msgstr "" "<strong>Notify me</strong> weekly when there are any new answers or updates" -#: forum/skins/default/templates/question.html:377 +#: skins/default/templates/question.html:385 #, python-format msgid "" "You can always adjust frequency of email updates from your %(profile_url)s" @@ -3085,21 +3519,21 @@ msgstr "" "(note: you can always <strong><a href='%(profile_url)s?" "sort=email_subscriptions'>change</a></strong> how often you receive updates)" -#: forum/skins/default/templates/question.html:382 +#: skins/default/templates/question.html:390 msgid "once you sign in you will be able to subscribe for any updates here" msgstr "" "<span class='strong'>Here</span> (once you log in) you will be able to sign " "up for the periodic email updates about this question." -#: forum/skins/default/templates/question.html:393 +#: skins/default/templates/question.html:401 msgid "Your answer" msgstr "" -#: forum/skins/default/templates/question.html:395 +#: skins/default/templates/question.html:403 msgid "Be the first one to answer this question!" msgstr "" -#: forum/skins/default/templates/question.html:401 +#: skins/default/templates/question.html:409 msgid "you can answer anonymously and then login" msgstr "" "<span class='strong big'>Please start posting your answer anonymously</span> " @@ -3108,7 +3542,7 @@ msgstr "" "answer</strong>, for discussions, <strong>please use comments</strong> and " "<strong>please do remember to vote</strong> (after you log in)!" -#: forum/skins/default/templates/question.html:405 +#: skins/default/templates/question.html:413 msgid "answer your own question only to give an answer" msgstr "" "<span class='big strong'>You are welcome to answer your own question</span>, " @@ -3118,7 +3552,7 @@ msgstr "" "forget to vote :)</strong> for the answers that you liked (or perhaps did " "not like)! " -#: forum/skins/default/templates/question.html:407 +#: skins/default/templates/question.html:415 msgid "please only give an answer, no discussions" msgstr "" "<span class='big strong'>Please try to give a substantial answer</span>. If " @@ -3128,55 +3562,55 @@ msgstr "" "please <strong>don't forget to vote</strong> - it really helps to select the " "best questions and answers!" -#: forum/skins/default/templates/question.html:443 +#: skins/default/templates/question.html:451 msgid "Login/Signup to Post Your Answer" msgstr "" -#: forum/skins/default/templates/question.html:446 +#: skins/default/templates/question.html:454 msgid "Answer Your Own Question" msgstr "" -#: forum/skins/default/templates/question.html:448 +#: skins/default/templates/question.html:456 msgid "Answer the question" msgstr "Post Your Answer" -#: forum/skins/default/templates/question.html:462 +#: skins/default/templates/question.html:471 msgid "Question tags" msgstr "Tags" -#: forum/skins/default/templates/question.html:467 -#: forum/skins/default/templates/questions.html:261 -#: forum/skins/default/templates/tag_selector.html:11 -#: forum/skins/default/templates/tag_selector.html:28 +#: skins/default/templates/question.html:476 +#: skins/default/templates/questions.html:312 +#: skins/default/templates/tag_selector.html:11 +#: skins/default/templates/tag_selector.html:28 #, python-format msgid "see questions tagged '%(tag_name)s'" msgstr "" -#: forum/skins/default/templates/question.html:473 +#: skins/default/templates/question.html:482 msgid "question asked" msgstr "Asked" -#: forum/skins/default/templates/question.html:476 +#: skins/default/templates/question.html:485 msgid "question was seen" msgstr "Seen" -#: forum/skins/default/templates/question.html:476 +#: skins/default/templates/question.html:485 msgid "times" msgstr "" -#: forum/skins/default/templates/question.html:479 +#: skins/default/templates/question.html:488 msgid "last updated" msgstr "Last updated" -#: forum/skins/default/templates/question.html:485 +#: skins/default/templates/question.html:494 msgid "Related questions" msgstr "" -#: forum/skins/default/templates/question_counter_widget.html:6 +#: skins/default/templates/question_counter_widget.html:6 msgid "Please decide if you like this question or not by voting" msgstr "" -#: forum/skins/default/templates/question_counter_widget.html:12 +#: skins/default/templates/question_counter_widget.html:12 msgid "" "\n" " vote\n" @@ -3188,11 +3622,14 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question_counter_widget.html:21 +#: skins/default/templates/question_counter_widget.html:21 +#: skins/default/templates/question_list.html:23 +#: skins/default/templates/questions.html:194 +#: skins/default/templates/users_questions.html:43 msgid "this answer has been accepted to be correct" msgstr "" -#: forum/skins/default/templates/question_counter_widget.html:27 +#: skins/default/templates/question_counter_widget.html:27 msgid "" "\n" " answer \n" @@ -3204,7 +3641,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question_counter_widget.html:39 +#: skins/default/templates/question_counter_widget.html:39 msgid "" "\n" " view\n" @@ -3216,143 +3653,170 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/question_edit.html:5 -#: forum/skins/default/templates/question_edit.html:66 +#: skins/default/templates/question_edit.html:5 +#: skins/default/templates/question_edit.html:66 msgid "Edit question" msgstr "" -#: forum/skins/default/templates/question_edit_tips.html:4 +#: skins/default/templates/question_edit_tips.html:4 msgid "question tips" msgstr "Tips" -#: forum/skins/default/templates/question_edit_tips.html:7 +#: skins/default/templates/question_edit_tips.html:7 msgid "please ask a relevant question" msgstr "ask a question interesting to this community" -#: forum/skins/default/templates/question_edit_tips.html:10 +#: skins/default/templates/question_edit_tips.html:10 msgid "please try provide enough details" msgstr "provide enough details" -#: forum/skins/default/templates/question_retag.html:4 -#: forum/skins/default/templates/question_retag.html:53 +#: skins/default/templates/question_list.html:15 +#: skins/default/templates/users_questions.html:35 +msgid "" +"\n" +" vote\n" +" " +msgid_plural "" +"\n" +" votes\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/question_list.html:35 +#: skins/default/templates/users_questions.html:55 +msgid "" +"\n" +" answer \n" +" " +msgid_plural "" +"\n" +" answers \n" +" " +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/question_list.html:47 +#: skins/default/templates/users_questions.html:67 +msgid "" +"\n" +" view\n" +" " +msgid_plural "" +"\n" +" views\n" +" " +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/question_retag.html:5 +#: skins/default/templates/question_retag.html:53 msgid "Change tags" msgstr "" -#: forum/skins/default/templates/question_retag.html:40 +#: skins/default/templates/question_retag.html:40 msgid "up to 5 tags, less than 20 characters each" msgstr "" -#: forum/skins/default/templates/question_retag.html:83 +#: skins/default/templates/question_retag.html:74 +msgid "Retag" +msgstr "" + +#: skins/default/templates/question_retag.html:83 msgid "Why use and modify tags?" msgstr "" -#: forum/skins/default/templates/question_retag.html:86 +#: skins/default/templates/question_retag.html:86 msgid "tags help us keep Questions organized" msgstr "" -#: forum/skins/default/templates/question_retag.html:94 +#: skins/default/templates/question_retag.html:94 msgid "tag editors receive special awards from the community" msgstr "" -#: forum/skins/default/templates/question_summary_list_roll.html:13 +#: skins/default/templates/question_summary_list_roll.html:13 msgid "answers" msgstr "" -#: forum/skins/default/templates/questions.html:8 +#: skins/default/templates/questions.html:9 msgid "Questions" msgstr "" -#: forum/skins/default/templates/questions.html:32 -msgid "Found by tags" -msgstr "Tagged questions" - -#: forum/skins/default/templates/questions.html:36 -msgid "Search results" -msgstr "" - -#: forum/skins/default/templates/questions.html:38 -msgid "Found by title" -msgstr "" - -#: forum/skins/default/templates/questions.html:42 -msgid "Unanswered questions" -msgstr "" - -#: forum/skins/default/templates/questions.html:44 -msgid "All questions" -msgstr "" - -#: forum/skins/default/templates/questions.html:51 +#: skins/default/templates/questions.html:33 msgid "In:" msgstr "" -#: forum/skins/default/templates/questions.html:53 +#: skins/default/templates/questions.html:35 msgid "see unanswered questions" msgstr "" -#: forum/skins/default/templates/questions.html:55 +#: skins/default/templates/questions.html:37 msgid "see your favorite questions" msgstr "" -#: forum/skins/default/templates/questions.html:59 +#: skins/default/templates/questions.html:41 msgid "Sort by:" msgstr "" -#: forum/skins/default/templates/questions.html:64 -#: forum/skins/default/templates/questions.html:75 +#: skins/default/templates/questions.html:46 +#: skins/default/templates/questions.html:57 msgid "click to see the newest questions" msgstr "" -#: forum/skins/default/templates/questions.html:70 +#: skins/default/templates/questions.html:52 msgid "click to see the oldest questions" msgstr "" -#: forum/skins/default/templates/questions.html:83 -#: forum/skins/default/templates/questions.html:94 +#: skins/default/templates/questions.html:65 +#: skins/default/templates/questions.html:76 msgid "click to see the most recently updated questions" msgstr "" -#: forum/skins/default/templates/questions.html:89 +#: skins/default/templates/questions.html:71 msgid "click to see the least recently updated questions" msgstr "" -#: forum/skins/default/templates/questions.html:102 -#: forum/skins/default/templates/questions.html:113 +#: skins/default/templates/questions.html:84 +#: skins/default/templates/questions.html:95 msgid "click to see hottest questions" msgstr "questions with most answers" -#: forum/skins/default/templates/questions.html:102 +#: skins/default/templates/questions.html:84 msgid "less answers" msgstr "" -#: forum/skins/default/templates/questions.html:108 +#: skins/default/templates/questions.html:90 msgid "click to see coldest questions" msgstr "questions with fewest answers" -#: forum/skins/default/templates/questions.html:108 -#: forum/skins/default/templates/questions.html:113 +#: skins/default/templates/questions.html:90 +#: skins/default/templates/questions.html:95 msgid "more answers" msgstr "" -#: forum/skins/default/templates/questions.html:121 -#: forum/skins/default/templates/questions.html:132 +#: skins/default/templates/questions.html:103 +#: skins/default/templates/questions.html:114 msgid "click to see most voted questions" msgstr "" -#: forum/skins/default/templates/questions.html:121 +#: skins/default/templates/questions.html:103 msgid "unpopular" msgstr "" -#: forum/skins/default/templates/questions.html:127 +#: skins/default/templates/questions.html:109 msgid "click to see least voted questions" msgstr "least voted questions" -#: forum/skins/default/templates/questions.html:127 -#: forum/skins/default/templates/questions.html:132 +#: skins/default/templates/questions.html:109 +#: skins/default/templates/questions.html:114 msgid "popular" msgstr "" -#: forum/skins/default/templates/questions.html:141 +#: skins/default/templates/questions.html:129 +msgid "rss feed" +msgstr "" + +#: skins/default/templates/questions.html:133 #, python-format msgid "" "\n" @@ -3365,226 +3829,246 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/questions.html:147 +#: skins/default/templates/questions.html:139 #, python-format msgid "%(q_num)s question" msgid_plural "%(q_num)s questions" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/questions.html:151 +#: skins/default/templates/questions.html:143 #, python-format msgid "with %(author_name)s's contributions" msgstr "" -#: forum/skins/default/templates/questions.html:155 +#: skins/default/templates/questions.html:147 msgid "tagged" msgstr "" -#: forum/skins/default/templates/questions.html:161 +#: skins/default/templates/questions.html:153 msgid "Search tips:" msgstr "" -#: forum/skins/default/templates/questions.html:165 +#: skins/default/templates/questions.html:157 msgid "reset author" msgstr "" -#: forum/skins/default/templates/questions.html:169 +#: skins/default/templates/questions.html:161 msgid "reset tags" msgstr "" -#: forum/skins/default/templates/questions.html:173 -#: forum/skins/default/templates/questions.html:177 +#: skins/default/templates/questions.html:165 +#: skins/default/templates/questions.html:169 msgid "start over" msgstr "" -#: forum/skins/default/templates/questions.html:179 +#: skins/default/templates/questions.html:171 msgid " - to expand, or dig in by adding more tags and revising the query." msgstr "" -#: forum/skins/default/templates/questions.html:182 +#: skins/default/templates/questions.html:174 msgid "Search tip:" msgstr "" -#: forum/skins/default/templates/questions.html:182 +#: skins/default/templates/questions.html:174 msgid "add tags and a query to focus your search" msgstr "" -#: forum/skins/default/templates/questions.html:194 +#: skins/default/templates/questions.html:190 +msgid "vote" +msgid_plural "votes" +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/questions.html:214 +msgid "view" +msgid_plural "views" +msgstr[0] "" +msgstr[1] "" + +#: skins/default/templates/questions.html:238 msgid "There are no unanswered questions here" msgstr "" -#: forum/skins/default/templates/questions.html:197 +#: skins/default/templates/questions.html:241 msgid "No favorite questions here. " msgstr "" -#: forum/skins/default/templates/questions.html:198 +#: skins/default/templates/questions.html:242 msgid "Please start (bookmark) some questions when you visit them" msgstr "" -#: forum/skins/default/templates/questions.html:203 +#: skins/default/templates/questions.html:247 msgid "You can expand your search by " msgstr "" -#: forum/skins/default/templates/questions.html:207 +#: skins/default/templates/questions.html:251 msgid "resetting author" msgstr "" -#: forum/skins/default/templates/questions.html:211 +#: skins/default/templates/questions.html:255 msgid "resetting tags" msgstr "" -#: forum/skins/default/templates/questions.html:215 -#: forum/skins/default/templates/questions.html:219 +#: skins/default/templates/questions.html:259 +#: skins/default/templates/questions.html:263 msgid "starting over" msgstr "" -#: forum/skins/default/templates/questions.html:224 +#: skins/default/templates/questions.html:268 msgid "Please always feel free to ask your question!" msgstr "" -#: forum/skins/default/templates/questions.html:228 +#: skins/default/templates/questions.html:272 msgid "Did not find what you were looking for?" msgstr "" -#: forum/skins/default/templates/questions.html:229 +#: skins/default/templates/questions.html:273 msgid "Please, post your question!" msgstr "" -#: forum/skins/default/templates/questions.html:245 +#: skins/default/templates/questions.html:291 msgid "Contributors" msgstr "" -#: forum/skins/default/templates/questions.html:258 +#: skins/default/templates/questions.html:307 msgid "Related tags" msgstr "Tags" -#: forum/skins/default/templates/reopen.html:6 -#: forum/skins/default/templates/reopen.html:16 +#: skins/default/templates/reopen.html:6 +#: skins/default/templates/reopen.html:16 msgid "Reopen question" msgstr "" -#: forum/skins/default/templates/reopen.html:19 -msgid "Open the previously closed question" +#: skins/default/templates/reopen.html:19 +msgid "Title" msgstr "" -#: forum/skins/default/templates/reopen.html:22 -msgid "The question was closed for the following reason " +#: skins/default/templates/reopen.html:24 +#, python-format +msgid "" +"This question has been closed by \n" +" <a href=\"%(closed_by_profile_url)s\">%(closed_by_username)s</a>\n" +" " msgstr "" -#: forum/skins/default/templates/reopen.html:22 -msgid "reason - leave blank in english" +#: skins/default/templates/reopen.html:29 +msgid "Close reason:" msgstr "" -#: forum/skins/default/templates/reopen.html:22 -msgid "on " +#: skins/default/templates/reopen.html:32 +msgid "When:" msgstr "" -#: forum/skins/default/templates/reopen.html:22 -msgid "date closed" +#: skins/default/templates/reopen.html:35 +msgid "Reopen this question?" msgstr "" -#: forum/skins/default/templates/reopen.html:29 +#: skins/default/templates/reopen.html:39 msgid "Reopen this question" msgstr "" -#: forum/skins/default/templates/revisions_answer.html:7 -#: forum/skins/default/templates/revisions_answer.html:38 -#: forum/skins/default/templates/revisions_question.html:8 -#: forum/skins/default/templates/revisions_question.html:38 +#: skins/default/templates/revisions_answer.html:7 +#: skins/default/templates/revisions_answer.html:38 +#: skins/default/templates/revisions_question.html:8 +#: skins/default/templates/revisions_question.html:38 msgid "Revision history" msgstr "" -#: forum/skins/default/templates/revisions_answer.html:50 -#: forum/skins/default/templates/revisions_question.html:50 +#: skins/default/templates/revisions_answer.html:50 +#: skins/default/templates/revisions_question.html:50 msgid "click to hide/show revision" msgstr "" -#: forum/skins/default/templates/tag_selector.html:5 +#: skins/default/templates/tag_selector.html:5 msgid "Interesting tags" msgstr "" -#: forum/skins/default/templates/tag_selector.html:15 +#: skins/default/templates/tag_selector.html:15 #, python-format msgid "remove '%(tag_name)s' from the list of interesting tags" msgstr "" -#: forum/skins/default/templates/tag_selector.html:21 -#: forum/skins/default/templates/tag_selector.html:38 +#: skins/default/templates/tag_selector.html:21 +#: skins/default/templates/tag_selector.html:38 +#: skins/default/templates/user_moderate.html:31 msgid "Add" msgstr "" -#: forum/skins/default/templates/tag_selector.html:22 +#: skins/default/templates/tag_selector.html:22 msgid "Ignored tags" msgstr "" -#: forum/skins/default/templates/tag_selector.html:32 +#: skins/default/templates/tag_selector.html:32 #, python-format msgid "remove '%(tag_name)s' from the list of ignored tags" msgstr "" -#: forum/skins/default/templates/tag_selector.html:41 +#: skins/default/templates/tag_selector.html:41 msgid "keep ignored questions hidden" msgstr "" -#: forum/skins/default/templates/tags.html:6 -#: forum/skins/default/templates/tags.html:30 +#: skins/default/templates/tags.html:6 skins/default/templates/tags.html:30 msgid "Tag list" msgstr "" -#: forum/skins/default/templates/tags.html:32 +#: skins/default/templates/tags.html:32 msgid "sorted alphabetically" msgstr "" -#: forum/skins/default/templates/tags.html:32 +#: skins/default/templates/tags.html:32 msgid "by name" msgstr "" -#: forum/skins/default/templates/tags.html:33 +#: skins/default/templates/tags.html:33 msgid "sorted by frequency of tag use" msgstr "" -#: forum/skins/default/templates/tags.html:33 +#: skins/default/templates/tags.html:33 msgid "by popularity" msgstr "" -#: forum/skins/default/templates/tags.html:39 +#: skins/default/templates/tags.html:39 #, python-format msgid "" "All tags matching '<span class=\"darkred\"><strong>%(stag)s</strong></span>'" msgstr "" -#: forum/skins/default/templates/tags.html:42 +#: skins/default/templates/tags.html:42 msgid "Nothing found" msgstr "" -#: forum/skins/default/templates/user_edit.html:6 +#: skins/default/templates/user.html:34 +#, python-format +msgid "%(username)s's profile" +msgstr "" + +#: skins/default/templates/user_edit.html:6 msgid "Edit user profile" msgstr "" -#: forum/skins/default/templates/user_edit.html:19 +#: skins/default/templates/user_edit.html:19 msgid "edit profile" msgstr "" -#: forum/skins/default/templates/user_edit.html:33 -#: forum/skins/default/templates/user_info.html:53 +#: skins/default/templates/user_edit.html:33 msgid "Registered user" msgstr "" -#: forum/skins/default/templates/user_edit.html:40 +#: skins/default/templates/user_edit.html:40 msgid "Screen Name" msgstr "" -#: forum/skins/default/templates/user_edit.html:89 -#: forum/skins/default/templates/user_email_subscriptions.html:20 +#: skins/default/templates/user_edit.html:88 +#: skins/default/templates/user_email_subscriptions.html:20 msgid "Update" msgstr "" -#: forum/skins/default/templates/user_email_subscriptions.html:8 +#: skins/default/templates/user_email_subscriptions.html:8 msgid "Email subscription settings" msgstr "" -#: forum/skins/default/templates/user_email_subscriptions.html:9 +#: skins/default/templates/user_email_subscriptions.html:9 msgid "email subscription settings info" msgstr "" "<span class='big strong'>Adjust frequency of email updates.</span> Receive " @@ -3593,242 +4077,272 @@ msgstr "" "receive emails - select 'no email' on all items below.<br/>Updates are only " "sent when there is any new activity on selected items." -#: forum/skins/default/templates/user_email_subscriptions.html:21 +#: skins/default/templates/user_email_subscriptions.html:21 msgid "Stop sending email" msgstr "Stop Email" -#: forum/skins/default/templates/user_info.html:18 +#: skins/default/templates/user_info.html:15 msgid "change picture" msgstr "" -#: forum/skins/default/templates/user_info.html:25 -#: forum/skins/default/templates/users.html:26 forum/views/users.py:959 +#: skins/default/templates/user_info.html:22 +#: skins/default/templates/users.html:26 msgid "reputation" msgstr "karma" -#: forum/skins/default/templates/user_info.html:35 -msgid "Moderate this user" -msgstr "" - -#: forum/skins/default/templates/user_info.html:47 +#: skins/default/templates/user_info.html:33 msgid "update profile" msgstr "" -#: forum/skins/default/templates/user_info.html:57 +#: skins/default/templates/user_info.html:45 msgid "real name" msgstr "" -#: forum/skins/default/templates/user_info.html:62 +#: skins/default/templates/user_info.html:50 msgid "member for" msgstr "member since" -#: forum/skins/default/templates/user_info.html:67 +#: skins/default/templates/user_info.html:55 msgid "last seen" msgstr "" -#: forum/skins/default/templates/user_info.html:73 +#: skins/default/templates/user_info.html:61 msgid "user website" msgstr "" -#: forum/skins/default/templates/user_info.html:79 +#: skins/default/templates/user_info.html:67 msgid "location" msgstr "" -#: forum/skins/default/templates/user_info.html:86 +#: skins/default/templates/user_info.html:74 msgid "age" msgstr "" -#: forum/skins/default/templates/user_info.html:87 +#: skins/default/templates/user_info.html:75 msgid "age unit" msgstr "years old" -#: forum/skins/default/templates/user_info.html:93 +#: skins/default/templates/user_info.html:81 msgid "todays unused votes" msgstr "" -#: forum/skins/default/templates/user_info.html:94 +#: skins/default/templates/user_info.html:82 msgid "votes left" msgstr "" -#: forum/skins/default/templates/user_reputation.html:29 +#: skins/default/templates/user_moderate.html:7 +#, python-format +msgid "%(username)s's current status is \"%(status)s\"" +msgstr "" + +#: skins/default/templates/user_moderate.html:14 +msgid "Save" +msgstr "" + +#: skins/default/templates/user_moderate.html:20 +#, python-format +msgid "Your current reputation is %(reputation)s points" +msgstr "" + +#: skins/default/templates/user_moderate.html:22 +#, python-format +msgid "User's current reputation is %(reputation)s points" +msgstr "" + +#: skins/default/templates/user_moderate.html:30 +msgid "Subtract" +msgstr "" + +#: skins/default/templates/user_reputation.html:29 msgid "Your karma change log." msgstr "" -#: forum/skins/default/templates/user_reputation.html:31 +#: skins/default/templates/user_reputation.html:31 #, python-format msgid "%(user_name)s's karma change log" msgstr "" -#: forum/skins/default/templates/user_stats.html:11 +#: skins/default/templates/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] "" msgstr[1] "" -#: forum/skins/default/templates/user_stats.html:16 +#: skins/default/templates/user_stats.html:16 #, python-format msgid "<span class=\"count\">%(counter)s</span> Answer" msgid_plural "<span class=\"count\">%(counter)s</span> Answers" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/user_stats.html:24 +#: skins/default/templates/user_stats.html:24 #, python-format msgid "the answer has been voted for %(answer_score)s times" msgstr "" -#: forum/skins/default/templates/user_stats.html:24 +#: skins/default/templates/user_stats.html:24 msgid "this answer has been selected as correct" msgstr "" -#: forum/skins/default/templates/user_stats.html:34 +#: skins/default/templates/user_stats.html:34 #, python-format msgid "(%(comment_count)s comment)" msgid_plural "the answer has been commented %(comment_count)s times" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/user_stats.html:44 +#: skins/default/templates/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] "" msgstr[1] "" -#: forum/skins/default/templates/user_stats.html:50 +#: skins/default/templates/user_stats.html:50 msgid "thumb up" msgstr "" -#: forum/skins/default/templates/user_stats.html:51 +#: skins/default/templates/user_stats.html:51 msgid "user has voted up this many times" msgstr "" -#: forum/skins/default/templates/user_stats.html:55 +#: skins/default/templates/user_stats.html:55 msgid "thumb down" msgstr "" -#: forum/skins/default/templates/user_stats.html:56 +#: skins/default/templates/user_stats.html:56 msgid "user voted down this many times" msgstr "" -#: forum/skins/default/templates/user_stats.html:64 +#: skins/default/templates/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] "" msgstr[1] "" -#: forum/skins/default/templates/user_stats.html:72 +#: skins/default/templates/user_stats.html:72 #, python-format msgid "" "see other questions with %(view_user)s's contributions tagged '%(tag_name)s' " msgstr "" -#: forum/skins/default/templates/user_stats.html:86 +#: skins/default/templates/user_stats.html:86 #, python-format msgid "<span class=\"count\">%(counter)s</span> Badge" msgid_plural "<span class=\"count\">%(counter)s</span> Badges" msgstr[0] "" msgstr[1] "" -#: forum/skins/default/templates/user_tabs.html:7 +#: skins/default/templates/user_tabs.html:8 msgid "User profile" msgstr "" -#: forum/skins/default/templates/user_tabs.html:7 forum/views/users.py:933 +#: skins/default/templates/user_tabs.html:9 msgid "overview" msgstr "" -#: forum/skins/default/templates/user_tabs.html:9 forum/views/users.py:941 +#: skins/default/templates/user_tabs.html:11 msgid "recent activity" msgstr "" -#: forum/skins/default/templates/user_tabs.html:12 forum/views/users.py:951 +#: skins/default/templates/user_tabs.html:12 +msgid "activity" +msgstr "" + +#: skins/default/templates/user_tabs.html:15 views/users.py:740 msgid "comments and answers to others questions" msgstr "" -#: forum/skins/default/templates/user_tabs.html:13 forum/views/users.py:950 +#: skins/default/templates/user_tabs.html:16 msgid "responses" msgstr "" -#: forum/skins/default/templates/user_tabs.html:16 +#: skins/default/templates/user_tabs.html:19 msgid "graph of user reputation" msgstr "Graph of user karma" -#: forum/skins/default/templates/user_tabs.html:17 +#: skins/default/templates/user_tabs.html:20 msgid "reputation history" msgstr "karma history" -#: forum/skins/default/templates/user_tabs.html:20 forum/views/users.py:977 +#: skins/default/templates/user_tabs.html:23 views/users.py:804 msgid "user vote record" msgstr "" -#: forum/skins/default/templates/user_tabs.html:20 forum/views/users.py:976 +#: skins/default/templates/user_tabs.html:24 msgid "casted votes" msgstr "votes" -#: forum/skins/default/templates/user_tabs.html:23 +#: skins/default/templates/user_tabs.html:27 msgid "questions that user selected as his/her favorite" msgstr "" -#: forum/skins/default/templates/user_tabs.html:24 +#: skins/default/templates/user_tabs.html:28 msgid "favorites" msgstr "" -#: forum/skins/default/templates/user_tabs.html:27 forum/views/users.py:986 +#: skins/default/templates/user_tabs.html:31 views/users.py:929 msgid "email subscription settings" msgstr "" -#: forum/skins/default/templates/user_tabs.html:28 forum/views/users.py:985 -msgid "email subscriptions" -msgstr "subscriptions" +#: skins/default/templates/user_tabs.html:32 +msgid "subscriptions" +msgstr "" + +#: skins/default/templates/user_tabs.html:36 views/users.py:187 +msgid "moderate this user" +msgstr "" + +#: skins/default/templates/user_tabs.html:37 +msgid "moderation" +msgstr "" -#: forum/skins/default/templates/users.html:6 -#: forum/skins/default/templates/users.html:24 +#: skins/default/templates/users.html:6 skins/default/templates/users.html:24 msgid "Users" msgstr "" -#: forum/skins/default/templates/users.html:27 +#: skins/default/templates/users.html:27 msgid "recent" msgstr "" -#: forum/skins/default/templates/users.html:29 +#: skins/default/templates/users.html:29 msgid "by username" msgstr "" -#: forum/skins/default/templates/users.html:35 +#: skins/default/templates/users.html:35 #, python-format msgid "users matching query %(suser)s:" msgstr "" -#: forum/skins/default/templates/users.html:39 +#: skins/default/templates/users.html:39 msgid "Nothing found." msgstr "" -#: forum/skins/default/templates/users_questions.html:11 +#: skins/default/templates/users_questions.html:11 msgid "this questions was selected as favorite" msgstr "" -#: forum/skins/default/templates/users_questions.html:12 +#: skins/default/templates/users_questions.html:12 msgid "thumb-up on" msgstr "" -#: forum/skins/default/templates/users_questions.html:19 +#: skins/default/templates/users_questions.html:19 msgid "thumb-up off" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:3 -#: forum/skins/default/templates/authopenid/changeemail.html:9 -#: forum/skins/default/templates/authopenid/changeemail.html:38 +#: skins/default/templates/authopenid/changeemail.html:3 +#: skins/default/templates/authopenid/changeemail.html:9 +#: skins/default/templates/authopenid/changeemail.html:38 msgid "Change email" msgstr "Change Email" -#: forum/skins/default/templates/authopenid/changeemail.html:11 +#: skins/default/templates/authopenid/changeemail.html:11 msgid "Save your email address" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:16 +#: skins/default/templates/authopenid/changeemail.html:16 #, python-format msgid "change %(email)s info" msgstr "" @@ -3836,7 +4350,7 @@ msgstr "" "you'd like to use another email for <strong>update subscriptions</strong>." "<br>Currently you are using <strong>%(email)s</strong>" -#: forum/skins/default/templates/authopenid/changeemail.html:18 +#: skins/default/templates/authopenid/changeemail.html:18 #, python-format msgid "here is why email is required, see %(gravatar_faq_url)s" msgstr "" @@ -3847,26 +4361,26 @@ msgstr "" "(gravatar_faq_url)s'><strong>gravatar</strong></a> image for your account. " "Email addresses are never shown or otherwise shared with anybody else." -#: forum/skins/default/templates/authopenid/changeemail.html:31 +#: skins/default/templates/authopenid/changeemail.html:31 msgid "Your new Email" msgstr "" "<strong>Your new Email:</strong> (will <strong>not</strong> be shown to " "anyone, must be valid)" -#: forum/skins/default/templates/authopenid/changeemail.html:31 +#: skins/default/templates/authopenid/changeemail.html:31 msgid "Your Email" msgstr "" "<strong>Your Email</strong> (<i>must be valid, never shown to others</i>)" -#: forum/skins/default/templates/authopenid/changeemail.html:38 +#: skins/default/templates/authopenid/changeemail.html:38 msgid "Save Email" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:49 +#: skins/default/templates/authopenid/changeemail.html:49 msgid "Validate email" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:52 +#: skins/default/templates/authopenid/changeemail.html:52 #, python-format msgid "validate %(email)s info or go to %(change_email_url)s" msgstr "" @@ -3877,11 +4391,11 @@ msgstr "" "<strong>another email</strong>, please <a href='%(change_email_url)" "s'><strong>change it again</strong></a>." -#: forum/skins/default/templates/authopenid/changeemail.html:57 +#: skins/default/templates/authopenid/changeemail.html:57 msgid "Email not changed" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:60 +#: skins/default/templates/authopenid/changeemail.html:60 #, python-format msgid "old %(email)s kept, if you like go to %(change_email_url)s" msgstr "" @@ -3890,11 +4404,11 @@ msgstr "" "it in your user profile or by using the <a href='%(change_email_url)" "s'><strong>previous form</strong></a> again." -#: forum/skins/default/templates/authopenid/changeemail.html:65 +#: skins/default/templates/authopenid/changeemail.html:65 msgid "Email changed" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:68 +#: skins/default/templates/authopenid/changeemail.html:68 #, python-format msgid "your current %(email)s can be used for this" msgstr "" @@ -3903,11 +4417,11 @@ msgstr "" "Email notifications are sent once a day or less frequently - only when there " "are any news." -#: forum/skins/default/templates/authopenid/changeemail.html:73 +#: skins/default/templates/authopenid/changeemail.html:73 msgid "Email verified" msgstr "" -#: forum/skins/default/templates/authopenid/changeemail.html:76 +#: skins/default/templates/authopenid/changeemail.html:76 msgid "thanks for verifying email" msgstr "" "<span class=\"big strong\">Thank you for verifying your email!</span> Now " @@ -3916,11 +4430,11 @@ msgstr "" "updates</strong> - then will be notified about changes <strong>once a day</" "strong> or less frequently." -#: forum/skins/default/templates/authopenid/changeemail.html:81 +#: skins/default/templates/authopenid/changeemail.html:81 msgid "email key not sent" msgstr "Validation email not sent" -#: forum/skins/default/templates/authopenid/changeemail.html:84 +#: skins/default/templates/authopenid/changeemail.html:84 #, python-format msgid "email key not sent %(email)s change email here %(change_link)s" msgstr "" @@ -3928,44 +4442,44 @@ msgstr "" "validated before</span> so the new key was not sent. You can <a href='%" "(change_link)s'>change</a> email used for update subscriptions if necessary." -#: forum/skins/default/templates/authopenid/changeopenid.html:8 +#: skins/default/templates/authopenid/changeopenid.html:8 msgid "Account: change OpenID URL" msgstr "" -#: forum/skins/default/templates/authopenid/changeopenid.html:12 +#: skins/default/templates/authopenid/changeopenid.html:12 msgid "" "This is where you can change your OpenID URL. Make sure you remember it!" msgstr "" -#: forum/skins/default/templates/authopenid/changeopenid.html:14 -#: forum/skins/default/templates/authopenid/delete.html:14 -#: forum/skins/default/templates/authopenid/delete.html:24 +#: skins/default/templates/authopenid/changeopenid.html:14 +#: skins/default/templates/authopenid/delete.html:14 +#: skins/default/templates/authopenid/delete.html:24 msgid "Please correct errors below:" msgstr "" -#: forum/skins/default/templates/authopenid/changeopenid.html:29 +#: skins/default/templates/authopenid/changeopenid.html:29 msgid "OpenID URL:" msgstr "" -#: forum/skins/default/templates/authopenid/changepw.html:7 +#: skins/default/templates/authopenid/changepw.html:7 msgid "Account: change password" msgstr "Change your password" -#: forum/skins/default/templates/authopenid/changepw.html:8 +#: skins/default/templates/authopenid/changepw.html:8 msgid "This is where you can change your password. Make sure you remember it!" msgstr "" "<span class='strong'>To change your password</span> please fill out and " "submit this form" -#: forum/skins/default/templates/authopenid/complete.html:19 +#: skins/default/templates/authopenid/complete.html:19 msgid "Connect your OpenID with this site" msgstr "New user signup" -#: forum/skins/default/templates/authopenid/complete.html:22 +#: skins/default/templates/authopenid/complete.html:22 msgid "Connect your OpenID with your account on this site" msgstr "New user signup" -#: forum/skins/default/templates/authopenid/complete.html:27 +#: skins/default/templates/authopenid/complete.html:27 #, python-format msgid "register new %(provider)s account info, see %(gravatar_faq_url)s" msgstr "" @@ -3976,7 +4490,7 @@ msgstr "" "questions and will be used to create and retrieve your unique avatar image - " "<a href='%(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" -#: forum/skins/default/templates/authopenid/complete.html:31 +#: skins/default/templates/authopenid/complete.html:31 #, python-format msgid "" "%(username)s already exists, choose another name for \n" @@ -3993,7 +4507,7 @@ msgstr "" "updates</strong> on the interesting questions or entire forum by email. " "Email addresses are never shown or otherwise shared with anybody else.</p>" -#: forum/skins/default/templates/authopenid/complete.html:35 +#: skins/default/templates/authopenid/complete.html:35 #, python-format msgid "" "register new external %(provider)s account info, see %(gravatar_faq_url)s" @@ -4007,7 +4521,7 @@ msgstr "" "retrieve your unique avatar image - <a href='%(gravatar_faq_url)" "s'><strong>gravatar</strong></a>.</p>" -#: forum/skins/default/templates/authopenid/complete.html:38 +#: skins/default/templates/authopenid/complete.html:38 #, python-format msgid "register new Facebook connect account info, see %(gravatar_faq_url)s" msgstr "" @@ -4018,26 +4532,26 @@ msgstr "" "and will be used to create and retrieve your unique avatar image - <a href='%" "(gravatar_faq_url)s'><strong>gravatar</strong></a>.</p>" -#: forum/skins/default/templates/authopenid/complete.html:42 +#: skins/default/templates/authopenid/complete.html:42 msgid "This account already exists, please use another." msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:57 +#: skins/default/templates/authopenid/complete.html:57 msgid "Sorry, looks like we have some errors:" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:82 +#: skins/default/templates/authopenid/complete.html:82 msgid "Screen name label" msgstr "<strong>Screen Name</strong> (<i>will be shown to others</i>)" -#: forum/skins/default/templates/authopenid/complete.html:89 +#: skins/default/templates/authopenid/complete.html:89 msgid "Email address label" msgstr "" "<strong>Email Address</strong> (<i>will <strong>not</strong> be shared with " "anyone, must be valid</i>)" -#: forum/skins/default/templates/authopenid/complete.html:95 -#: forum/skins/default/templates/authopenid/signup.html:18 +#: skins/default/templates/authopenid/complete.html:95 +#: skins/default/templates/authopenid/signup.html:18 msgid "receive updates motivational blurb" msgstr "" "<strong>Receive forum updates by email</strong> - this will help our " @@ -4046,64 +4560,64 @@ msgstr "" "week</strong> - only when there is anything new.<br/>If you like, please " "adjust this now or any time later from your user account." -#: forum/skins/default/templates/authopenid/complete.html:99 -#: forum/skins/default/templates/authopenid/signup.html:22 +#: skins/default/templates/authopenid/complete.html:99 +#: skins/default/templates/authopenid/signup.html:22 msgid "please select one of the options above" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:102 +#: skins/default/templates/authopenid/complete.html:102 msgid "Tag filter tool will be your right panel, once you log in." msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:103 +#: skins/default/templates/authopenid/complete.html:103 msgid "create account" msgstr "Signup" -#: forum/skins/default/templates/authopenid/complete.html:112 +#: skins/default/templates/authopenid/complete.html:112 msgid "Existing account" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:113 +#: skins/default/templates/authopenid/complete.html:113 msgid "user name" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:114 +#: skins/default/templates/authopenid/complete.html:114 msgid "password" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:121 +#: skins/default/templates/authopenid/complete.html:121 msgid "Register" msgstr "" -#: forum/skins/default/templates/authopenid/complete.html:122 -#: forum/skins/default/templates/authopenid/signin.html:168 +#: skins/default/templates/authopenid/complete.html:122 +#: skins/default/templates/authopenid/signin.html:168 msgid "Forgot your password?" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:2 +#: skins/default/templates/authopenid/confirm_email.txt:2 msgid "Thank you for registering at our Q&A forum!" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:4 +#: skins/default/templates/authopenid/confirm_email.txt:4 msgid "Your account details are:" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:6 +#: skins/default/templates/authopenid/confirm_email.txt:6 msgid "Username:" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:7 -#: forum/skins/default/templates/authopenid/delete.html:19 +#: skins/default/templates/authopenid/confirm_email.txt:7 +#: skins/default/templates/authopenid/delete.html:19 msgid "Password:" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:9 +#: skins/default/templates/authopenid/confirm_email.txt:9 msgid "Please sign in here:" msgstr "" -#: forum/skins/default/templates/authopenid/confirm_email.txt:12 -#: forum/skins/default/templates/authopenid/email_validation.txt:14 -#: forum/skins/default/templates/authopenid/sendpw_email.txt:8 +#: skins/default/templates/authopenid/confirm_email.txt:12 +#: skins/default/templates/authopenid/email_validation.txt:14 +#: skins/default/templates/authopenid/sendpw_email.txt:8 msgid "" "Sincerely,\n" "Forum Administrator" @@ -4111,73 +4625,73 @@ msgstr "" "Sincerely,\n" "Q&A Forum Administrator" -#: forum/skins/default/templates/authopenid/delete.html:8 +#: skins/default/templates/authopenid/delete.html:8 msgid "Account: delete account" msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:12 +#: skins/default/templates/authopenid/delete.html:12 msgid "" "Note: After deleting your account, anyone will be able to register this " "username." msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:16 +#: skins/default/templates/authopenid/delete.html:16 msgid "Check confirm box, if you want delete your account." msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:31 +#: skins/default/templates/authopenid/delete.html:31 msgid "I am sure I want to delete my account." msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:32 +#: skins/default/templates/authopenid/delete.html:32 msgid "Password/OpenID URL" msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:32 +#: skins/default/templates/authopenid/delete.html:32 msgid "(required for your security)" msgstr "" -#: forum/skins/default/templates/authopenid/delete.html:34 +#: skins/default/templates/authopenid/delete.html:34 msgid "Delete account permanently" msgstr "" -#: forum/skins/default/templates/authopenid/email_validation.txt:2 +#: skins/default/templates/authopenid/email_validation.txt:2 msgid "Greetings from the Q&A forum" msgstr "" -#: forum/skins/default/templates/authopenid/email_validation.txt:4 +#: skins/default/templates/authopenid/email_validation.txt:4 msgid "To make use of the Forum, please follow the link below:" msgstr "" -#: forum/skins/default/templates/authopenid/email_validation.txt:8 +#: skins/default/templates/authopenid/email_validation.txt:8 msgid "Following the link above will help us verify your email address." msgstr "" -#: forum/skins/default/templates/authopenid/email_validation.txt:10 +#: skins/default/templates/authopenid/email_validation.txt:10 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" msgstr "" -#: forum/skins/default/templates/authopenid/external_legacy_login_info.html:4 -#: forum/skins/default/templates/authopenid/external_legacy_login_info.html:7 +#: skins/default/templates/authopenid/external_legacy_login_info.html:4 +#: skins/default/templates/authopenid/external_legacy_login_info.html:7 msgid "Traditional login information" msgstr "" -#: forum/skins/default/templates/authopenid/external_legacy_login_info.html:12 +#: skins/default/templates/authopenid/external_legacy_login_info.html:12 #, python-format msgid "" "how to login with password through external login website or use %" "(feedback_url)s" msgstr "" -#: forum/skins/default/templates/authopenid/sendpw.html:4 -#: forum/skins/default/templates/authopenid/sendpw.html:7 +#: skins/default/templates/authopenid/sendpw.html:4 +#: skins/default/templates/authopenid/sendpw.html:7 msgid "Send new password" msgstr "Recover password" -#: forum/skins/default/templates/authopenid/sendpw.html:10 +#: skins/default/templates/authopenid/sendpw.html:10 msgid "password recovery information" msgstr "" "<span class='big strong'>Forgot you password? No problems - just get a new " @@ -4187,22 +4701,22 @@ msgstr "" "login with the suggested password<br/>• at this you might want to " "change your password to something you can remember better" -#: forum/skins/default/templates/authopenid/sendpw.html:21 +#: skins/default/templates/authopenid/sendpw.html:21 msgid "Reset password" msgstr "Send me a new password" -#: forum/skins/default/templates/authopenid/sendpw.html:22 +#: skins/default/templates/authopenid/sendpw.html:22 msgid "return to login" msgstr "" -#: forum/skins/default/templates/authopenid/sendpw_email.txt:2 +#: skins/default/templates/authopenid/sendpw_email.txt:2 #, python-format msgid "" "Someone has requested to reset your password on %(site_url)s.\n" "If it were not you, it is safe to ignore this email." msgstr "" -#: forum/skins/default/templates/authopenid/sendpw_email.txt:5 +#: skins/default/templates/authopenid/sendpw_email.txt:5 #, python-format msgid "" "email explanation how to use new %(password)s for %(username)s\n" @@ -4213,12 +4727,12 @@ msgstr "" "* login with user name %(username)s and password %(password)s\n" "* go to your user profile and set the password to something you can remember" -#: forum/skins/default/templates/authopenid/signin.html:5 -#: forum/skins/default/templates/authopenid/signin.html:21 +#: skins/default/templates/authopenid/signin.html:5 +#: skins/default/templates/authopenid/signin.html:21 msgid "User login" msgstr "User login" -#: forum/skins/default/templates/authopenid/signin.html:28 +#: skins/default/templates/authopenid/signin.html:28 #, python-format msgid "" "\n" @@ -4231,7 +4745,7 @@ msgstr "" "strong> %(summary)s...\"</i> <span class=\"strong big\">is saved and will be " "posted once you log in.</span>" -#: forum/skins/default/templates/authopenid/signin.html:35 +#: skins/default/templates/authopenid/signin.html:35 #, python-format msgid "" "Your question \n" @@ -4242,7 +4756,7 @@ msgstr "" "strong> %(summary)s...\"</i> <span class=\"strong big\">is saved and will be " "posted once you log in.</span>" -#: forum/skins/default/templates/authopenid/signin.html:42 +#: skins/default/templates/authopenid/signin.html:42 msgid "Click to sign in through any of these services." msgstr "" "<p><span class=\"big strong\">Please select your favorite login method below." @@ -4260,14 +4774,14 @@ msgstr "" # "have to remember another one. " # "Askbot option requires your login name and " # "password entered here.</font></p>" -#: forum/skins/default/templates/authopenid/signin.html:144 +#: skins/default/templates/authopenid/signin.html:144 msgid "Enter your <span id=\"enter_your_what\">Provider user name</span>" msgstr "" "<span class=\"big strong\">Enter your </span><span id=\"enter_your_what\" " "class='big strong'>Provider user name</span><br/><span class='grey'>(or " "select another login method above)</span>" -#: forum/skins/default/templates/authopenid/signin.html:151 +#: skins/default/templates/authopenid/signin.html:151 msgid "" "Enter your <a class=\"openid_logo\" href=\"http://openid.net\">OpenID</a> " "web address" @@ -4276,68 +4790,68 @@ msgstr "" "openid.net\">OpenID</a> web address</span><br/><span class='grey'>(or choose " "another login method above)</span>" -#: forum/skins/default/templates/authopenid/signin.html:153 -#: forum/skins/default/templates/authopenid/signin.html:166 +#: skins/default/templates/authopenid/signin.html:153 +#: skins/default/templates/authopenid/signin.html:166 msgid "Login" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:157 +#: skins/default/templates/authopenid/signin.html:157 msgid "Enter your login name and password" msgstr "" "<span class='big strong'>Enter your Askbot login and password</span><br/" "><span class='grey'>(or select your OpenID provider above)</span>" -#: forum/skins/default/templates/authopenid/signin.html:161 +#: skins/default/templates/authopenid/signin.html:161 msgid "Login name" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:163 +#: skins/default/templates/authopenid/signin.html:163 msgid "Password" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:167 +#: skins/default/templates/authopenid/signin.html:167 msgid "Create account" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:178 +#: skins/default/templates/authopenid/signin.html:178 msgid "Why use OpenID?" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:181 +#: skins/default/templates/authopenid/signin.html:181 msgid "with openid it is easier" msgstr "With the OpenID you don't need to create new username and password." -#: forum/skins/default/templates/authopenid/signin.html:184 +#: skins/default/templates/authopenid/signin.html:184 msgid "reuse openid" msgstr "You can safely re-use the same login for all OpenID-enabled websites." -#: forum/skins/default/templates/authopenid/signin.html:187 +#: skins/default/templates/authopenid/signin.html:187 msgid "openid is widely adopted" msgstr "" "There are > 160,000,000 OpenID account in use. Over 10,000 sites are OpenID-" "enabled." -#: forum/skins/default/templates/authopenid/signin.html:190 +#: skins/default/templates/authopenid/signin.html:190 msgid "openid is supported open standard" msgstr "OpenID is based on an open standard, supported by many organizations." -#: forum/skins/default/templates/authopenid/signin.html:195 +#: skins/default/templates/authopenid/signin.html:195 msgid "Find out more" msgstr "" -#: forum/skins/default/templates/authopenid/signin.html:196 +#: skins/default/templates/authopenid/signin.html:196 msgid "Get OpenID" msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:4 +#: skins/default/templates/authopenid/signup.html:4 msgid "Signup" msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:8 +#: skins/default/templates/authopenid/signup.html:8 msgid "Create login name and password" msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:10 +#: skins/default/templates/authopenid/signup.html:10 msgid "Traditional signup info" msgstr "" "<span class='strong big'>If you prefer, create your forum login name and " @@ -4346,383 +4860,327 @@ msgstr "" "simply reuse your external login (e.g. Gmail or AOL) without ever sharing " "your login details with anyone and having to remember yet another password." -#: forum/skins/default/templates/authopenid/signup.html:25 +#: skins/default/templates/authopenid/signup.html:25 msgid "" "Please read and type in the two words below to help us prevent automated " "account creation." msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:27 +#: skins/default/templates/authopenid/signup.html:27 msgid "Create Account" msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:28 +#: skins/default/templates/authopenid/signup.html:28 msgid "or" msgstr "" -#: forum/skins/default/templates/authopenid/signup.html:29 +#: skins/default/templates/authopenid/signup.html:29 msgid "return to OpenID login" msgstr "" -#: forum/skins/default/templates/fbconnect/xd_receiver.html:5 +#: skins/default/templates/fbconnect/xd_receiver.html:5 #, python-format msgid "Connect to %(settings.APP_SHORT_NAME)s with Facebook!" msgstr "" -#: forum/templatetags/extra_filters.py:100 +#: templatetags/extra_filters.py:161 msgid "no items in counter" msgstr "no" -#: forum/templatetags/extra_tags.py:53 +#: templatetags/extra_tags.py:55 #, python-format msgid "%(username)s gravatar image" msgstr "" -#: forum/templatetags/extra_tags.py:178 forum/templatetags/extra_tags.py:205 +#: templatetags/extra_tags.py:165 +#, python-format +msgid "%(badge_count)d %(badge_level)s badge" +msgid_plural "%(badge_count)d %(badge_level)s badges" +msgstr[0] "" +msgstr[1] "" + +#: templatetags/extra_tags.py:188 templatetags/extra_tags.py:235 +#: templatetags/extra_tags.py:239 msgid "reputation points" msgstr "karma" -#: forum/templatetags/extra_tags.py:265 +#: templatetags/extra_tags.py:231 +#, python-format +msgid "your karma is %(reputation)s" +msgstr "" + +#: templatetags/extra_tags.py:247 +msgid "badges: " +msgstr "" + +#: templatetags/extra_tags.py:318 +#, python-format +msgid "on %(date)s" +msgstr "" + +#: templatetags/extra_tags.py:322 msgid "2 days ago" msgstr "" -#: forum/templatetags/extra_tags.py:267 +#: templatetags/extra_tags.py:324 msgid "yesterday" msgstr "" -#: forum/templatetags/extra_tags.py:269 +#: templatetags/extra_tags.py:326 #, python-format msgid "%(hr)d hour ago" msgid_plural "%(hr)d hours ago" msgstr[0] "" msgstr[1] "" -#: forum/templatetags/extra_tags.py:271 +#: templatetags/extra_tags.py:328 #, python-format msgid "%(min)d min ago" msgid_plural "%(min)d mins ago" msgstr[0] "" msgstr[1] "" -#: forum/utils/forms.py:32 +#: utils/forms.py:32 msgid "this field is required" msgstr "" -#: forum/utils/forms.py:46 +#: utils/forms.py:46 msgid "choose a username" msgstr "Choose screen name" -#: forum/utils/forms.py:52 +#: utils/forms.py:52 msgid "user name is required" msgstr "" -#: forum/utils/forms.py:53 +#: utils/forms.py:53 msgid "sorry, this name is taken, please choose another" msgstr "" -#: forum/utils/forms.py:54 +#: utils/forms.py:54 msgid "sorry, this name is not allowed, please choose another" msgstr "" -#: forum/utils/forms.py:55 +#: utils/forms.py:55 msgid "sorry, there is no user with this name" msgstr "" -#: forum/utils/forms.py:56 +#: utils/forms.py:56 msgid "sorry, we have a serious error - user name is taken by several users" msgstr "" -#: forum/utils/forms.py:57 +#: utils/forms.py:57 msgid "user name can only consist of letters, empty space and underscore" msgstr "" -#: forum/utils/forms.py:118 +#: utils/forms.py:118 msgid "your email address" msgstr "Your email <i>(never shared)</i>" -#: forum/utils/forms.py:119 +#: utils/forms.py:119 msgid "email address is required" msgstr "" -#: forum/utils/forms.py:120 +#: utils/forms.py:120 msgid "please enter a valid email address" msgstr "" -#: forum/utils/forms.py:121 +#: utils/forms.py:121 msgid "this email is already used by someone else, please choose another" msgstr "" -#: forum/utils/forms.py:149 +#: utils/forms.py:149 msgid "choose password" msgstr "Password" -#: forum/utils/forms.py:150 +#: utils/forms.py:150 msgid "password is required" msgstr "" -#: forum/utils/forms.py:153 +#: utils/forms.py:153 msgid "retype password" msgstr "Password <i>(please retype)</i>" -#: forum/utils/forms.py:154 +#: utils/forms.py:154 msgid "please, retype your password" msgstr "" -#: forum/utils/forms.py:155 +#: utils/forms.py:155 msgid "sorry, entered passwords did not match, please try again" msgstr "" -#: forum/views/commands.py:218 +#: views/commands.py:40 +msgid "anonymous users cannot vote" +msgstr "Sorry, anonymous users cannot vote" + +#: views/commands.py:60 +msgid "Sorry you ran out of votes for today" +msgstr "" + +#: views/commands.py:66 +#, python-format +msgid "You have %(votes_left)s votes left for today" +msgstr "" + +#: views/commands.py:136 +msgid "Sorry, something is not right here..." +msgstr "" + +#: views/commands.py:151 +msgid "Sorry, but anonymous users cannot accept answers" +msgstr "" + +#: views/commands.py:232 #, python-format msgid "subscription saved, %(email)s needs validation, see %(details_url)s" msgstr "" "Your subscription is saved, but email address %(email)s needs to be " "validated, please see <a href='%(details_url)s'>more details here</a>" -#: forum/views/commands.py:226 +#: views/commands.py:240 msgid "email update frequency has been set to daily" msgstr "" -#: forum/views/meta.py:35 +#: views/meta.py:40 msgid "Q&A forum feedback" msgstr "" -#: forum/views/meta.py:36 +#: views/meta.py:41 msgid "Thanks for the feedback!" msgstr "" -#: forum/views/meta.py:44 +#: views/meta.py:49 msgid "We look forward to hearing your feedback! Please, give it next time :)" msgstr "" -#: forum/views/users.py:893 forum/views/users.py:897 -msgid "changes saved" +#: views/readers.py:291 +msgid "Sorry, this question has been deleted and is no longer accessible" msgstr "" -#: forum/views/users.py:903 -msgid "email updates canceled" +#: views/users.py:188 +msgid "moderate user" msgstr "" -#: forum/views/users.py:934 +#: views/users.py:390 msgid "user profile" msgstr "" -#: forum/views/users.py:935 +#: views/users.py:391 msgid "user profile overview" msgstr "" -#: forum/views/users.py:942 +#: views/users.py:673 msgid "recent user activity" msgstr "" -#: forum/views/users.py:943 +#: views/users.py:674 msgid "profile - recent activity" msgstr "" -#: forum/views/users.py:952 +#: views/users.py:741 msgid "profile - responses" msgstr "" -#: forum/views/users.py:960 +#: views/users.py:805 +msgid "profile - votes" +msgstr "" + +#: views/users.py:840 msgid "user reputation in the community" msgstr "user karma" -#: forum/views/users.py:961 +#: views/users.py:841 msgid "profile - user reputation" msgstr "Profile - User's Karma" -#: forum/views/users.py:967 -msgid "favorite questions" -msgstr "" - -#: forum/views/users.py:968 +#: views/users.py:892 msgid "users favorite questions" msgstr "" -#: forum/views/users.py:969 +#: views/users.py:893 msgid "profile - favorite questions" msgstr "" -#: forum/views/users.py:978 -msgid "profile - votes" +#: views/users.py:909 views/users.py:913 +msgid "changes saved" msgstr "" -#: forum/views/users.py:987 -msgid "profile - email subscriptions" +#: views/users.py:919 +msgid "email updates canceled" msgstr "" -#: forum/views/writers.py:67 -#, python-format -msgid "uploading images is limited to users with >%(min_rep)s reputation points" -msgstr "sorry, file uploading requires karma >%(min_rep)s" - -#: forum/views/writers.py:69 -#, python-format -msgid "allowed file types are '%(file_types)s'" +#: views/users.py:930 +msgid "profile - email subscriptions" msgstr "" -#: forum/views/writers.py:71 -#, python-format -msgid "maximum upload file size is %sK" +#: views/writers.py:52 +msgid "Sorry, anonymous users cannot upload files" msgstr "" -#: forum/views/writers.py:73 +#: views/writers.py:60 #, python-format -msgid "" -"Error uploading file. Please contact the site administrator. Thank you. %s" -msgstr "" - -#: forum_modules/authentication/auth.py:27 -msgid "Email Validation" -msgstr "" - -#: forum_modules/authentication/auth.py:38 -msgid "Thank you, your email is now validated." -msgstr "" - -#: forum_modules/authentication/auth.py:62 -msgid "Your password was changed" +msgid "allowed file types are '%(file_types)s'" msgstr "" -#: forum_modules/authentication/auth.py:64 -msgid "New password set" -msgstr "New password created" - -#: forum_modules/authentication/auth.py:130 +#: views/writers.py:83 #, python-format -msgid "Welcome back %s, you are now logged in" -msgstr "" - -#: forum_modules/books/urls.py:7 forum_modules/books/urls.py:8 -#: forum_modules/books/urls.py:9 -msgid "books/" -msgstr "" - -#: keyedcache/views.py:14 -msgid "Yes" -msgstr "" - -#: keyedcache/views.py:15 -msgid "No" -msgstr "" - -#: keyedcache/views.py:19 -msgid "Key to delete" -msgstr "" - -#: keyedcache/views.py:20 -msgid "Include Children?" -msgstr "" - -#: keyedcache/views.py:21 -msgid "Delete all keys?" -msgstr "" - -#: keyedcache/templates/keyedcache/delete.html:6 -#: keyedcache/templates/keyedcache/stats.html:6 -#: keyedcache/templates/keyedcache/view.html:6 -#: livesettings/templates/livesettings/group_settings.html:14 -#: livesettings/templates/livesettings/site_settings.html:26 -msgid "Home" -msgstr "" - -#: keyedcache/templates/keyedcache/delete.html:7 -#: keyedcache/templates/keyedcache/view.html:7 -msgid "Cache" -msgstr "" - -#: keyedcache/templates/keyedcache/delete.html:8 -msgid "Cache Delete" -msgstr "" - -#: keyedcache/templates/keyedcache/stats.html:7 -msgid "Cache Stats" -msgstr "" - -#: keyedcache/templates/keyedcache/view.html:8 -msgid "Cache View" -msgstr "" - -#: livesettings/models.py:101 livesettings/models.py:140 -msgid "Site" -msgstr "" - -#: livesettings/values.py:103 -msgid "Base Settings" -msgstr "" - -#: livesettings/values.py:210 -msgid "Default value: \"\"" +msgid "maximum upload file size is %(file_size)sK" msgstr "" -#: livesettings/values.py:217 -msgid "Default value: " +#: views/writers.py:91 +msgid "Error uploading file. Please contact the site administrator. Thank you." msgstr "" -#: livesettings/values.py:220 +#: views/writers.py:422 #, python-format -msgid "Default value: %s" -msgstr "" - -#: livesettings/templates/livesettings/_admin_site_views.html:4 -msgid "Sites" -msgstr "" - -#: livesettings/templates/livesettings/group_settings.html:11 -#: livesettings/templates/livesettings/site_settings.html:23 -msgid "Documentation" -msgstr "" - -#: livesettings/templates/livesettings/group_settings.html:11 -#: livesettings/templates/livesettings/site_settings.html:23 -msgid "Log out" -msgstr "" - -#: livesettings/templates/livesettings/group_settings.html:15 -msgid "Edit Group Settings" +msgid "" +"Sorry, you appear to be logged out and cannot post comments. Please <a href=" +"\"%(sign_in_url)s\">sign in</a>." msgstr "" -#: livesettings/templates/livesettings/group_settings.html:22 -#: livesettings/templates/livesettings/site_settings.html:50 -msgid "Please correct the error below." -msgid_plural "Please correct the errors below." -msgstr[0] "" -msgstr[1] "" - -#: livesettings/templates/livesettings/group_settings.html:28 +#: views/writers.py:457 #, python-format -msgid "Settings included in %(name)s." -msgstr "" - -#: livesettings/templates/livesettings/group_settings.html:62 -#: livesettings/templates/livesettings/site_settings.html:97 -msgid "You don't have permission to edit values." -msgstr "" - -#: livesettings/templates/livesettings/group_settings.html:68 -msgid "Setting groups" +msgid "" +"Sorry, you appear to be logged out and cannot delete comments. Please <a " +"href=\"%(sign_in_url)s\">sign in</a>." msgstr "" -#: livesettings/templates/livesettings/site_settings.html:27 -msgid "Edit Site Settings" +#: views/writers.py:477 +msgid "sorry, we seem to have some technical difficulties" msgstr "" -#: livesettings/templates/livesettings/site_settings.html:43 -msgid "Livesettings are disabled for this site." -msgstr "" +#, fuzzy +#~ msgid "" +#~ "\n" +#~ " view\n" +#~ " " +#~ msgid_plural "" +#~ "\n" +#~ " views\n" +#~ " " +#~ msgstr[0] "" +#~ "\n" +#~ "<div class=\"questions-count\">%(q_num)s</div><p>question without an " +#~ "accepted answer</p>" +#~ msgstr[1] "" +#~ "\n" +#~ "<div class=\"questions-count\">%(q_num)s</div><p>questions without an " +#~ "accepted answer</p>" -#: livesettings/templates/livesettings/site_settings.html:44 -msgid "All configuration options must be edited in the site settings.py file" -msgstr "" +#, fuzzy +#~ msgid "Sorry, to close own question " +#~ msgstr "" +#~ "<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." -#: livesettings/templates/livesettings/site_settings.html:66 -#, python-format -msgid "Group settings: %(name)s" -msgstr "" +#~ msgid "Found by tags" +#~ msgstr "Tagged questions" -#: livesettings/templates/livesettings/site_settings.html:93 -msgid "Uncollapse all" -msgstr "" +#~ msgid "New password set" +#~ msgstr "New password created" #, fuzzy #~ msgid "user_subscriptions_url" @@ -4744,9 +5202,6 @@ msgstr "" #~ msgstr[0] "One question found" #~ msgstr[1] "" -#~ msgid "unanswered questions" -#~ msgstr "unanswered" - #~ msgid "general message about privacy" #~ msgstr "" #~ "Respecting users privacy is an important core principle of this Q&A " @@ -4830,20 +5285,3 @@ msgstr "" #~ msgid "avatar, see %(gravatar_faq_url)s" #~ msgstr "<a href='%(gravatar_faq_url)s'>gravatar</a>" - -#~ msgid "" -#~ "\n" -#~ " have total %(q_num)s unanswered questions\n" -#~ " " -#~ msgid_plural "" -#~ "\n" -#~ " have total %(q_num)s unanswered questions\n" -#~ " " -#~ msgstr[0] "" -#~ "\n" -#~ "<div class=\"questions-count\">%(q_num)s</div><p>question without an " -#~ "accepted answer</p>" -#~ msgstr[1] "" -#~ "\n" -#~ "<div class=\"questions-count\">%(q_num)s</div><p>questions without an " -#~ "accepted answer</p>" diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index 0b987ea0..9eaea23e 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -159,25 +159,25 @@ def user_assert_can_unaccept_best_answer(self, answer = None): assert(isinstance(answer, Answer)) if self.is_blocked(): error_message = _( - 'Sorry, you cannot accept or unaccept best answers ' + \ + 'Sorry, you cannot accept or unaccept best answers ' 'because your account is blocked' ) elif self.is_suspended(): error_message = _( - 'Sorry, you cannot accept or unaccept best answers ' + \ + 'Sorry, you cannot accept or unaccept best answers ' 'because your account is suspended' ) elif self == answer.question.get_owner(): if self == answer.get_owner(): error_message = _( - 'Sorry, you cannot accept or unaccept your own answer ' + \ + 'Sorry, you cannot accept or unaccept your own answer ' 'to your own question' ) else: return #assertion success else: error_message = _( - 'Sorry, only original author of the question ' + \ + 'Sorry, only original author of the question ' ' - %(username)s - can accept the best answer' ) % {'username': answer.get_owner().username} @@ -200,7 +200,7 @@ def user_assert_can_vote_for_post( """ if self == post.author: - raise django_exceptions.PermissionDenied('cannot vote for own posts') + raise django_exceptions.PermissionDenied(_('cannot vote for own posts')) blocked_error_message = _( 'Sorry your account appears to be blocked ' + @@ -242,7 +242,7 @@ def user_assert_can_upload_file(request_user): blocked_error_message = _('Sorry, blocked users cannot upload files') suspended_error_message = _('Sorry, suspended users cannot upload files') low_rep_error_message = _( - 'uploading images is limited to users ' + \ + 'uploading images is limited to users ' 'with >%(min_rep)s reputation points' ) % {'min_rep': askbot_settings.MIN_REP_TO_UPLOAD_FILES } @@ -280,12 +280,12 @@ def user_assert_can_post_comment(self, parent_post = None): """ suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you can comment only your own posts' ) low_rep_error_message = _( - 'Sorry, to comment any post a minimum reputation of ' + \ - '%(min_rep)s points is required. You can still comment ' +\ + 'Sorry, to comment any post a minimum reputation of ' + '%(min_rep)s points is required. You can still comment ' 'your own posts and answers to your questions' ) % {'min_rep': askbot_settings.MIN_REP_TO_LEAVE_COMMENTS} @@ -307,8 +307,12 @@ def user_assert_can_post_comment(self, parent_post = None): def user_assert_can_see_deleted_post(self, post = None): + """attn: this assertion is independently coded in + Question.get_answers call + """ + error_message = _( - 'This post has been deleted and can be seen only ' + \ + 'This post has been deleted and can be seen only ' 'by post ownwers, site administrators and moderators' ) _assert_user_can( @@ -325,7 +329,7 @@ def user_assert_can_edit_deleted_post(self, post = None): self.assert_can_see_deleted_post(post) except django_exceptions.PermissionDenied, e: error_message = _( - 'Sorry, only moderators, site administrators ' + \ + 'Sorry, only moderators, site administrators ' 'and post owners can edit deleted posts' ) raise django_exceptions.PermissionDenied(error_message) @@ -340,23 +344,23 @@ def user_assert_can_edit_post(self, post = None): return blocked_error_message = _( - 'Sorry, since your account is blocked ' + \ + 'Sorry, since your account is blocked ' 'you cannot edit posts' ) suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you can edit only your own posts' ) if post.wiki == True: low_rep_error_message = _( - 'Sorry, to edit wiki\' posts, a minimum ' + \ + 'Sorry, to edit wiki\' posts, a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_EDIT_WIKI} min_rep_setting = askbot_settings.MIN_REP_TO_EDIT_WIKI else: low_rep_error_message = _( - 'Sorry, to edit other people\' posts, a minimum ' + \ + 'Sorry, to edit other people\' posts, a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_EDIT_OTHERS_POSTS} @@ -419,9 +423,9 @@ def user_assert_can_delete_question(self, question = None): return else: msg = ungettext( - 'Sorry, cannot delete your question since it ' + \ + 'Sorry, cannot delete your question since it ' 'has an upvoted answer posted by someone else', - 'Sorry, cannot delete your question since it ' + \ + 'Sorry, cannot delete your question since it ' 'has some upvoted answers posted by other users', answer_count ) @@ -434,15 +438,15 @@ def user_assert_can_delete_answer(self, answer = None): assert on deleting question (in addition to some special rules) """ blocked_error_message = _( - 'Sorry, since your account is blocked ' + \ + 'Sorry, since your account is blocked ' 'you cannot delete posts' ) suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you can delete only your own posts' ) low_rep_error_message = _( - 'Sorry, to deleted other people\' posts, a minimum ' + \ + 'Sorry, to deleted other people\' posts, a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_DELETE_OTHERS_POSTS} @@ -462,15 +466,15 @@ def user_assert_can_delete_answer(self, answer = None): def user_assert_can_close_question(self, question = None): assert(isinstance(question, Question) == True) blocked_error_message = _( - 'Sorry, since your account is blocked ' + \ + 'Sorry, since your account is blocked ' 'you cannot close questions' ) suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you cannot close questions' ) low_rep_error_message = _( - 'Sorry, to close other people\' posts, a minimum ' + \ + 'Sorry, to close other people\' posts, a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_CLOSE_OTHERS_QUESTIONS} @@ -479,7 +483,7 @@ def user_assert_can_close_question(self, question = None): owner_min_rep_setting = askbot_settings.MIN_REP_TO_CLOSE_OWN_QUESTIONS owner_low_rep_error_message = _( - 'Sorry, to close own question ' + \ + 'Sorry, to close own question ' 'a minimum reputation of %(min_rep)s is required' ) % {'min_rep': owner_min_rep_setting} @@ -503,13 +507,13 @@ def user_assert_can_reopen_question(self, question = None): owner_min_rep_setting = askbot_settings.MIN_REP_TO_REOPEN_OWN_QUESTIONS general_error_message = _( - 'Sorry, only administrators, moderators ' + \ - 'or post owners with reputation > %(min_rep)s ' + \ + 'Sorry, only administrators, moderators ' + 'or post owners with reputation > %(min_rep)s ' 'can reopen questions.' ) % {'min_rep': owner_min_rep_setting } owner_low_rep_error_message = _( - 'Sorry, to reopen own question ' + \ + 'Sorry, to reopen own question ' 'a minimum reputation of %(min_rep)s is required' ) % {'min_rep': owner_min_rep_setting} @@ -574,22 +578,22 @@ def user_assert_can_retag_question(self, question = None): self.assert_can_edit_deleted_post(question) except django_exceptions.PermissionDenied: error_message = _( - 'Sorry, only question owners, ' + \ - 'site administrators and moderators ' + \ + 'Sorry, only question owners, ' + 'site administrators and moderators ' 'can retag deleted questions' ) raise django_exceptions.PermissionDenied(error_message) blocked_error_message = _( - 'Sorry, since your account is blocked ' + \ + 'Sorry, since your account is blocked ' 'you cannot retag questions' ) suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you can retag only your own questions' ) low_rep_error_message = _( - 'Sorry, to retag questions a minimum ' + \ + 'Sorry, to retag questions a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_RETAG_OTHERS_QUESTIONS} @@ -608,15 +612,15 @@ def user_assert_can_retag_question(self, question = None): def user_assert_can_delete_comment(self, comment = None): blocked_error_message = _( - 'Sorry, since your account is blocked ' + \ + 'Sorry, since your account is blocked ' 'you cannot delete comment' ) suspended_error_message = _( - 'Sorry, since your account is suspended ' + \ + 'Sorry, since your account is suspended ' 'you can delete only your own comments' ) low_rep_error_message = _( - 'Sorry, to delete comments ' + \ + 'Sorry, to delete comments ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_DELETE_OTHERS_COMMENTS} @@ -734,8 +738,19 @@ def user_delete_answer( timestamp = None ): self.assert_can_delete_answer(answer = answer) - #todo - move onDeleted method where appropriate - auth.onDeleted(answer, self, timestamp = timestamp) + answer.deleted = True + answer.deleted_by = self + answer.deleted_at = timestamp + answer.save() + + Question.objects.update_answer_count(answer.question) + logging.debug('updated answer count to %d' % answer.question.answer_count) + + signals.delete_question_or_answer.send( + sender = answer.__class__, + instance = answer, + delete_by = self + ) @auto_now_timestamp def user_delete_question( @@ -744,8 +759,26 @@ def user_delete_question( timestamp = None ): self.assert_can_delete_question(question = question) - #todo - move onDeleted method to a fitting class - auth.onDeleted(question, self, timestamp = timestamp) + + question.deleted = True + question.deleted_by = self + question.deleted_at = timestamp + question.save() + + for tag in list(question.tags.all()): + if tag.used_count == 1: + tag.deleted = True + tag.deleted_by = self + tag.deleted_at = timestamp + else: + tag.used_count = tag.used_count - 1 + tag.save() + + signals.delete_question_or_answer.send( + sender = question.__class__, + instance = question, + delete_by = self + ) @auto_now_timestamp def user_close_question( @@ -797,9 +830,25 @@ def user_restore_post( post = None, timestamp = None ): + #here timestamp is not used, I guess added for consistency self.assert_can_restore_post(post) if isinstance(post, Question) or isinstance(post, Answer): - auth.onDeleteCanceled(self, post, timestamp) + post.deleted = False + post.deleted_by = None + post.deleted_at = None + post.save() + if isinstance(post, Answer): + Question.objects.update_answer_count(post.question) + elif isinstance(post, Question): + #todo: make sure that these tags actually exist + #some may have since been deleted for good + #or merged into others + for tag in list(post.tags.all()): + if tag.used_count == 1 and tag.deleted: + tag.deleted = False + tag.deleted_by = None + tag.deleted_at = None + tag.save() else: raise NotImplementedError() @@ -1563,9 +1612,12 @@ def notify_award_message(instance, created, **kwargs): if created: user = instance.user - msg = (u"Congratulations, you have received a badge '%s'. " \ - + u"Check out <a href=\"%s\">your profile</a>.") \ - % (instance.badge.name, user.get_profile_url()) + msg = _(u"Congratulations, you have received a badge '%(badge_name)s'. " + u"Check out <a href=\"%(user_profile)s\">your profile</a>.") \ + % { + 'badge_name':instance.badge.name, + 'user_profile':user.get_profile_url() + } user.message_set.create(message=msg) diff --git a/askbot/models/answer.py b/askbot/models/answer.py index 7bb006b1..1eb8ec42 100644 --- a/askbot/models/answer.py +++ b/askbot/models/answer.py @@ -68,20 +68,6 @@ class AnswerManager(models.Manager): authors.update(answer.get_author_list(**kwargs)) return list(authors) - #GET_ANSWERS_FROM_USER_QUESTIONS = u'SELECT answer.* FROM answer INNER JOIN question ON answer.question_id = question.id WHERE question.author_id =%s AND answer.author_id <> %s' - def get_answers_from_question(self, question, user=None): - """ - Retrieves visibile answers for the given question. Delete answers - are only visibile to the person who deleted them. - """ - #todo: there is this odd query used? - - if user is None or not user.is_authenticated(): - return self.filter(question=question, deleted=False) - else: - return self.filter(models.Q(question=question), - models.Q(deleted=False) | models.Q(deleted_by=user)) - #todo: I think this method is not being used anymore, I'll just comment it for now #def get_answers_from_questions(self, user_id): # """ diff --git a/askbot/models/question.py b/askbot/models/question.py index 044f8856..cdb5388c 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -247,12 +247,7 @@ class QuestionManager(models.Manager): Executes an UPDATE query to update denormalised data with the number of answers the given question has. """ - - # for some reasons, this Answer class failed to be imported, - # although we have imported all classes from models on top. - from askbot.models.answer import Answer - self.filter(id=question.id).update( - answer_count=Answer.objects.get_answers_from_question(question).filter(deleted=False).count()) + question.answer_count = question.get_answers().count() def update_view_count(self, question): """ @@ -331,6 +326,22 @@ class Question(content.Content, DeletableContent): except Exception: logging.debug('problem pinging google did you register you sitemap with google?') + def get_answers(self, user = None): + """returns query set for answers to this question + that may be shown to the given user + """ + + if user is None or user.is_anonymous(): + return self.answers.filter(deleted=False) + else: + if user.is_administrator() or user.is_moderator(): + return self.answers.all() + else: + return self.answers.filter( + models.Q(deleted = False) | models.Q(author = user) \ + | models.Q(deleted_by = user) + ) + def get_updated_activity_data(self, created = False): if created: return const.TYPE_ACTIVITY_ASK_QUESTION, self diff --git a/askbot/models/repute.py b/askbot/models/repute.py index 0f156d57..eef85b58 100644 --- a/askbot/models/repute.py +++ b/askbot/models/repute.py @@ -159,12 +159,12 @@ class Repute(models.Model): if delta > 0: link_title = _( '%(points)s points were added for %(username)s\'s ' - + 'contribution to question %(question_title)s' + 'contribution to question %(question_title)s' ) % link_title_data else: link_title = _( '%(points)s points were subtracted for %(username)s\'s ' - + 'contribution to question %(question_title)s' + 'contribution to question %(question_title)s' ) % link_title_data return '<a href="%(url)s" title="%(link_title)s">%(question_title)s</a>' \ diff --git a/askbot/skins/default/media/js/com.cnprog.post.js b/askbot/skins/default/media/js/com.cnprog.post.js index 5ad07f5d..0cec8e51 100755 --- a/askbot/skins/default/media/js/com.cnprog.post.js +++ b/askbot/skins/default/media/js/com.cnprog.post.js @@ -55,7 +55,7 @@ var Vote = function(){ var acceptAnonymousMessage = $.i18n._('insufficient privilege'); var acceptOwnAnswerMessage = $.i18n._('cannot pick own answer as best'); - var pleaseLogin = "<a href='" + scriptUrl + $.i18n._("account/") + $.i18n._("signin/") + var pleaseLogin = " <a href='" + scriptUrl + $.i18n._("account/") + $.i18n._("signin/") + "?next=" + scriptUrl + $.i18n._("question/") + "{{QuestionID}}/{{questionSlug}}'>" + $.i18n._('please login') + "</a>"; @@ -357,20 +357,15 @@ var Vote = function(){ var callback_remove = function(object, voteType, data){ if (data.success == "1"){ - if (voteType == VoteType.removeQuestion){ - window.location.href = scriptUrl + $.i18n._("questions/"); + if (removeActionType == 'delete'){ + postNode.addClass('deleted'); + postRemoveLink.innerHTML = $.i18n._('undelete'); + showMessage(object, deletedMessage); } - else { - if (removeActionType == 'delete'){ - postNode.addClass('deleted'); - postRemoveLink.innerHTML = $.i18n._('undelete'); - showMessage(object, deletedMessage); - } - else if (removeActionType == 'undelete') { - postNode.removeClass('deleted'); - postRemoveLink.innerHTML = $.i18n._('delete'); - showMessage(object, recoveredMessage); - } + else if (removeActionType == 'undelete') { + postNode.removeClass('deleted'); + postRemoveLink.innerHTML = $.i18n._('delete'); + showMessage(object, recoveredMessage); } } else { @@ -422,6 +417,7 @@ var Vote = function(){ questionSlug ) ); + return false; } // up and downvote processor if (voteType == VoteType.answerUpVote){ @@ -475,17 +471,17 @@ var Vote = function(){ var do_proceed = false; if (postType == 'answer'){ postNode = $('#answer-container-' + postId); - postRemoveLink = object; - if (postNode.hasClass('deleted')){ - removeActionType = 'undelete'; - do_proceed = true; - } - else { - removeActionType = 'delete'; - do_proceed = confirm(removeConfirmation); - } + } + else if (postType == 'question'){ + postNode = $('#question-table'); + } + postRemoveLink = object; + if (postNode.hasClass('deleted')){ + removeActionType = 'undelete'; + do_proceed = true; } else { + removeActionType = 'delete'; do_proceed = confirm(removeConfirmation); } if (do_proceed) { diff --git a/askbot/skins/default/templates/question.html b/askbot/skins/default/templates/question.html index cf4acc97..729f3e7c 100644 --- a/askbot/skins/default/templates/question.html +++ b/askbot/skins/default/templates/question.html @@ -266,7 +266,7 @@ alt="{% trans "i dont like this answer (click again to cancel)" %}" title="{% trans "i dont like this answer (click again to cancel)" %}" /> - {% ifequal request.user question.author %} + {% if request.user == question.author %} <img id="answer-img-accept-{{ answer.id }}" class="answer-img-accept" src="{% blockmedia %}/media/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" alt="{% trans "mark this answer as favorite (click again to undo)" %}" @@ -275,10 +275,10 @@ {% if answer.accepted %} <img id="answer-img-accept-{{ answer.id }}" class="answer-img-accept" src="{% blockmedia %}/media/images/vote-accepted{% if answer.accepted %}-on{% endif %}.png{% endblockmedia %}" - alt="{% trans "the author of the question has selected this answer as correct" %}" - title="{% trans "the author of the question has selected this answer as correct" %}" /> + alt="{% blocktrans with question.author.username as question_author %}{{question_author}} has selected this answer as correct{% endblocktrans %}" + title="{% blocktrans with question.author.username as question_author %}{{question_author}} has selected this answer as correct{% endblocktrans %}" {% endif %} - {% endifequal %} + {% endif %} </div> </td> <td> diff --git a/askbot/skins/default/templates/questions.html b/askbot/skins/default/templates/questions.html index e2fdd3cf..2b1642d0 100644 --- a/askbot/skins/default/templates/questions.html +++ b/askbot/skins/default/templates/questions.html @@ -184,14 +184,14 @@ <div class="votes"> <span class="item-count" + {% if question.score == 0 %} + style="background:{{settings.COLORS_VOTE_COUNTER_EMPTY_BG}};color:{{settings.COLORS_VOTE_COUNTER_EMPTY_FG}}" + {% else %} style="background:{{settings.COLORS_VOTE_COUNTER_MIN_BG}};color:{{settings.COLORS_VOTE_COUNTER_MIN_FG}}" + {% endif %} >{{question.score|humanize_counter}}</span> <div> - {% blocktrans count question.score as cnt %} - vote - {% plural %} - votes - {% endblocktrans %} + {% blocktrans count question.score as cnt %}vote{% plural %}votes{% endblocktrans %} </div> </div > {% comment %} @@ -200,30 +200,30 @@ <div class="votes"> <span class="item-count" - {% if question.answer_accepted %} - style="background:{{settings.COLORS_ANSWER_COUNTER_ACCEPTED_BG}};color:{{settings.COLORS_ANSWER_COUNTER_ACCEPTED_FG}}" + {% if question.answer_count == 0 %} + style="background:{{settings.COLORS_ANSWER_COUNTER_EMPTY_BG}};color:{{settings.COLORS_ANSWER_COUNTER_EMPTY_FG}}" {% else %} - style="background:{{settings.COLORS_ANSWER_COUNTER_MIN_BG}};color:{{settings.COLORS_ANSWER_COUNTER_MIN_FG}}" + {% if question.answer_accepted %} + style="background:{{settings.COLORS_ANSWER_COUNTER_ACCEPTED_BG}};color:{{settings.COLORS_ANSWER_COUNTER_ACCEPTED_FG}}" + {% else %} + style="background:{{settings.COLORS_ANSWER_COUNTER_MIN_BG}};color:{{settings.COLORS_ANSWER_COUNTER_MIN_FG}}" + {% endif %} {% endif %} >{{question.answer_count|humanize_counter}}</span> <div> - {% blocktrans count question.answer_count as cnt %} - answer - {% plural %} - answers - {% endblocktrans %} + {% blocktrans count question.answer_count as cnt %}answer{% plural %}answers{% endblocktrans %} </div> </div> <div class="votes"> <span class="item-count" + {% if question.view_count == 0 %} + style="background:{{settings.COLORS_VIEW_COUNTER_EMPTY_BG}};color:{{settings.COLORS_VIEW_COUNTER_EMPTY_FG}}" + {% else %} style="background:{{settings.COLORS_VIEW_COUNTER_MIN_BG}};color:{{settings.COLORS_VIEW_COUNTER_MIN_FG}}" + {% endif %} >{{question.view_count|humanize_counter}}</span> <div> - {% blocktrans count question.view_count as cnt %} - view - {% plural %} - views - {% endblocktrans %} + {% blocktrans count question.view_count as cnt %}view{% plural %}views{% endblocktrans %} </div> </div> </div> diff --git a/askbot/templatetags/extra_filters.py b/askbot/templatetags/extra_filters.py index 14e3817e..e6339e11 100644 --- a/askbot/templatetags/extra_filters.py +++ b/askbot/templatetags/extra_filters.py @@ -99,6 +99,11 @@ can_retag_question = make_template_filter_from_permission_assertion( filter_name = 'can_retag_question' ) +can_accept_best_answer = make_template_filter_from_permission_assertion( + assertion_name = 'assert_can_accept_best_answer', + filter_name = 'can_accept_best_answer' + ) + @register.filter def can_see_offensive_flags(user, post): """Determines if a User can view offensive flag counts. @@ -124,14 +129,6 @@ def can_see_offensive_flags(user, post): return False @register.filter -def can_lock_posts(user): - return auth.can_lock_posts(user) - -@register.filter -def can_accept_answer(user, question, answer): - return auth.can_accept_answer(user, question, answer) - -@register.filter def can_view_user_edit(request_user, target_user): return auth.can_view_user_edit(request_user, target_user) diff --git a/askbot/tests/db_api_tests.py b/askbot/tests/db_api_tests.py index 0dbe4663..5cf26d66 100644 --- a/askbot/tests/db_api_tests.py +++ b/askbot/tests/db_api_tests.py @@ -4,6 +4,8 @@ functions that happen on behalf of users e.g. ``some_user.do_something(...)`` """ from askbot.tests.utils import AskbotTestCase +from askbot import models +import datetime class DBApiTests(AskbotTestCase): @@ -11,6 +13,28 @@ class DBApiTests(AskbotTestCase): self.create_user() self.create_user(username = 'other_user') self.question = self.post_question() + self.now = datetime.datetime.now() + + def post_answer(self, user = None, question = None): + if user is None: + user = self.user + if question is None: + question = self.question + + self.answer = super(DBApiTests, self).post_answer( + user = user, + question = question, + ) + + def assert_post_is_deleted(self, post): + self.assertTrue(post.deleted == True) + self.assertTrue(isinstance(post.deleted_by, models.User)) + self.assertTrue(post.deleted_at is not None) + + def assert_post_is_not_deleted(self, post): + self.assertTrue(post.deleted == False) + self.assertTrue(post.deleted_by == None) + self.assertTrue(post.deleted_at == None) def test_flag_question(self): self.user.set_status('m') @@ -21,17 +45,49 @@ class DBApiTests(AskbotTestCase): ) def test_flag_answer(self): - answer = self.post_answer(question = self.question) + self.post_answer() self.user.set_status('m') - self.user.flag_post(answer) + self.user.flag_post(self.answer) self.assertEquals( len(self.user.flaggeditems.all()), 1 ) def test_accept_best_answer(self): - answer = self.post_answer( - question = self.question, - user = self.other_user - ) - self.user.accept_best_answer(answer) + self.post_answer(user = self.other_user) + self.user.accept_best_answer(self.answer) + + def test_delete_question(self): + self.user.delete_question(self.question) + self.assert_post_is_deleted(self.question) + + def test_restore_question(self): + self.question.deleted = True + self.question.deleted_by = self.user + self.question.deleted_at = self.now + self.question.save() + self.user.restore_post(self.question) + self.assert_post_is_not_deleted(self.question) + + def test_delete_answer(self): + self.post_answer(question = self.question) + self.user.delete_answer(self.answer) + self.assert_post_is_deleted(self.answer) + + def test_restore_answer(self): + self.post_answer() + self.answer.deleted = True + self.answer.deleted_by = self.user + self.answer.deleted_at = self.now + self.answer.save() + self.user.restore_post(self.answer) + self.assert_post_is_not_deleted(self.answer) + + def test_delete_question_with_answer_by_other(self): + self.post_answer(user = self.other_user) + self.user.delete_question(self.question) + self.assert_post_is_deleted(self.question) + answer_count = self.question.get_answers(user = self.user).count() + answer = self.question.answers.all()[0] + self.assert_post_is_not_deleted(answer) + self.assertTrue(answer_count == 1) diff --git a/askbot/views/readers.py b/askbot/views/readers.py index 5bd67422..440b71f4 100644 --- a/askbot/views/readers.py +++ b/askbot/views/readers.py @@ -21,6 +21,7 @@ from django.utils.translation import ugettext as _ from django.template.defaultfilters import slugify from django.core.urlresolvers import reverse from django.views.decorators.cache import cache_page +from django.core import exceptions as django_exceptions from askbot.utils.html import sanitize_html from markdown2 import Markdown @@ -283,10 +284,21 @@ def question(request, id):#refactor - long subroutine. display question body, an except: return HttpResponseRedirect(question.get_absolute_url()) - if question.deleted and not auth.can_view_deleted_post(request.user, question): - raise Http404 + if question.deleted: + try: + if request.user.is_anonymous(): + msg = _( + 'Sorry, this question has been ' + 'deleted and is no longer accessible' + ) + raise django_exceptions.PermissionDenied(msg) + request.user.assert_can_see_deleted_post(question) + except django_exceptions.PermissionDenied, e: + request.user.message_set.create(message = str(e)) + return HttpResponseRedirect(reverse('index')) + answer_form = AnswerForm(question,request.user) - answers = Answer.objects.get_answers_from_question(question, request.user) + answers = question.get_answers(user = request.user) answers = answers.select_related(depth=1) favorited = question.has_favorite_by_user(request.user) diff --git a/askbot/views/writers.py b/askbot/views/writers.py index 8a9e7d80..7de8ea35 100644 --- a/askbot/views/writers.py +++ b/askbot/views/writers.py @@ -178,21 +178,6 @@ def ask(request):#view used to ask a new question }, context_instance=RequestContext(request)) @login_required -def old_edit_question(request, id):#edit or retag a question - """view to edit question - """ - question = get_object_or_404(models.Question, id=id) - - if question.deleted and not auth.can_view_deleted_post(request.user, question): - raise Http404 - if auth.can_edit_post(request.user, question): - return _edit_question(request, question) - elif auth.can_retag_questions(request.user): - return _retag_question(request, question) - else: - raise Http404 - -@login_required def retag_question(request, id): """retag question view """ @@ -434,8 +419,8 @@ def __comments(request, obj):#non-view generic ajax handler to load comments to elif request.method == "POST": try: if user.is_anonymous(): - msg = _('Sorry, you appear to be logged out and ' + \ - 'cannot post comments. Please ' + \ + msg = _('Sorry, you appear to be logged out and ' + 'cannot post comments. Please ' '<a href="%(sign_in_url)s">sign in</a>.') % \ {'sign_in_url': reverse('user_signin')} raise exceptions.PermissionDenied(msg) @@ -469,8 +454,8 @@ def delete_comment( try: if request.user.is_anonymous(): - msg = _('Sorry, you appear to be logged out and ' + \ - 'cannot delete comments. Please ' + \ + msg = _('Sorry, you appear to be logged out and ' + 'cannot delete comments. Please ' '<a href="%(sign_in_url)s">sign in</a>.') % \ {'sign_in_url': reverse('user_signin')} raise exceptions.PermissionDenied(msg) |