diff options
36 files changed, 1065 insertions, 983 deletions
@@ -1,3 +1,5 @@ *.pyc *.swp +*.log +settings_local.py nbproject @@ -10,6 +10,7 @@ def application_settings(context): 'LANGUAGE_CODE': settings.LANGUAGE_CODE, 'GOOGLE_SITEMAP_CODE':settings.GOOGLE_SITEMAP_CODE, 'GOOGLE_ANALYTICS_KEY':settings.GOOGLE_ANALYTICS_KEY, + 'BOOKS_ON':settings.BOOKS_ON, } return {'settings':my_settings} diff --git a/django_authopenid/urls.py b/django_authopenid/urls.py index 6843e5c0..9c0887d8 100644 --- a/django_authopenid/urls.py +++ b/django_authopenid/urls.py @@ -21,10 +21,10 @@ urlpatterns = patterns('django_authopenid.views', # name='user_confirmchangepw'), # manage account settings - #url(r'^$', 'account_settings', name='user_account_settings'), + #url(r'^$', _('account_settings'), name='user_account_settings'), #url(r'^%s$' % _('password/'), 'changepw', name='user_changepw'), - url(r'^%s$' % 'email/', 'changeemail', name='user_changeemail',kwargs = {'action':'change'}), - url(r'^%s%s$' % ('email/','validate/'), 'changeemail', name='user_changeemail',kwargs = {'action':'validate'}), + url(r'^%s$' % _('email/'), 'changeemail', name='user_changeemail',kwargs = {'action':'change'}), + url(r'^%s%s$' % (_('email/'),_('validate/')), 'changeemail', name='user_changeemail',kwargs = {'action':'validate'}), #url(r'^%s$' % _('openid/'), 'changeopenid', name='user_changeopenid'), url(r'^%s$' % _('delete/'), 'delete', name='user_delete'), ) diff --git a/django_authopenid/views.py b/django_authopenid/views.py index 1cb8928b..218a31a2 100644 --- a/django_authopenid/views.py +++ b/django_authopenid/views.py @@ -358,6 +358,7 @@ def register(request): 'flickr':'<font color="#0063dc">flick</font><font color="#ff0084">r</font>™', 'google':'Google™', 'aol':'<font color="#31658e">AOL</font>', + 'myopenid':'MyOpenID', } if provider_name not in providers: provider_logo = provider_name diff --git a/forum/models.py b/forum/models.py index 9510476a..f647ba12 100644 --- a/forum/models.py +++ b/forum/models.py @@ -180,10 +180,10 @@ class Question(models.Model): return [name for name in self.tagnames.split(u' ')] def tagname_meta_generator(self): - return ','.join([str(tag) for tag in self.tagname_list()]) + return u','.join([unicode(tag) for tag in self.tagname_list()]) def get_absolute_url(self): - return '%s%s' % (reverse('question', args=[self.id]), self.title.replace(' ', '-')) + return '%s%s' % (reverse('question', args=[self.id]), slugify(self.title)) def has_favorite_by_user(self, user): if not user.is_authenticated(): @@ -303,7 +303,7 @@ class QuestionRevision(models.Model): return self.question.title def get_absolute_url(self): - return '/questions/%s/revisions' % (self.question.id) + return '/%s%s/%s' % (_('questions/'),self.question.id,_('revisions')) def save(self, **kwargs): """Looks up the next available revision number.""" @@ -415,7 +415,7 @@ class AnswerRevision(models.Model): text = models.TextField() def get_absolute_url(self): - return '/answers/%s/revisions' % (self.answer.id) + return '/%s%s/%s' % (_('answers/'),self.answer.id,_('revisions')) def get_question_title(self): return self.answer.question.title @@ -587,7 +587,7 @@ QUESTIONS_PER_PAGE_CHOICES = ( ) User.add_to_class('email_isvalid', models.BooleanField(default=False)) -User.add_to_class('email_key', models.CharField(max_length=16, null=True)) +User.add_to_class('email_key', models.CharField(max_length=32, null=True)) User.add_to_class('reputation', models.PositiveIntegerField(default=1)) User.add_to_class('gravatar', models.CharField(max_length=32)) User.add_to_class('email_feeds', generic.GenericRelation(EmailFeed)) @@ -629,7 +629,7 @@ def delete_messages(self): def get_profile_url(self): """Returns the URL for this User's profile.""" - return '%s%s/' % (reverse('user', args=[self.id]), self.username) + return '%s%s/' % (reverse('user', args=[self.id]), slugify(self.username)) User.add_to_class('get_profile_url', get_profile_url) User.add_to_class('get_messages', get_messages) User.add_to_class('delete_messages', delete_messages) diff --git a/forum/views.py b/forum/views.py index 4dc56946..d663a4cb 100644 --- a/forum/views.py +++ b/forum/views.py @@ -16,6 +16,7 @@ from django.core import serializers from django.db import transaction from django.contrib.contenttypes.models import ContentType from django.utils.translation import ugettext as _ +from django.template.defaultfilters import slugify from utils.html import sanitize_html from markdown2 import Markdown @@ -301,7 +302,7 @@ def ask(request): ip_addr = request.META['REMOTE_ADDR'], ) question.save() - return HttpResponseRedirect('%s%s%s' % ( _('/account/'),_('signin/'),('newquestion/'))) + return HttpResponseRedirect('/%s%s%s' % ( _('account/'),_('signin/'),_('newquestion/'))) else: form = AskForm() @@ -332,7 +333,7 @@ def question(request, id): answers = answers.select_related(depth=1) favorited = question.has_favorite_by_user(request.user) - if not request.user.is_anonymous(): + if request.user.is_authenticated(): question_vote = question.votes.select_related().filter(user=request.user) else: question_vote = None #is this correct? @@ -695,7 +696,8 @@ def answer(request, id): ip_addr = request.META['REMOTE_ADDR'], ) anon.save() - return HttpResponseRedirect('/account/signin/newanswer') + return HttpResponseRedirect('/%s%s%s' % ( _('account/'), + _('signin/'),_('newquestion/'))) return HttpResponseRedirect(question.get_absolute_url()) @@ -736,7 +738,7 @@ def tags(request): 'has_next': tags.has_next(), 'previous': tags.previous_page_number(), 'next': tags.next_page_number(), - 'base_url' : '/tags/?sort=%s&' % sortby + 'base_url' : '/%s?sort=%s&' % (_('tags/'), sortby) } }, context_instance=RequestContext(request)) @@ -989,11 +991,11 @@ def users(request): # default else: objects_list = Paginator(User.objects.all().order_by('-reputation'), USERS_PAGE_SIZE) - base_url = '/users/?sort=%s&' % sortby + base_url = '/%s?sort=%s&' % (_('users/'), sortby) else: sortby = "reputation" objects_list = Paginator(User.objects.extra(where=['username like %s'], params=['%' + suser + '%']).order_by('-reputation'), USERS_PAGE_SIZE) - base_url = '/users/?name=%s&sort=%s&' % (suser, sortby) + base_url = '/%s?name=%s&sort=%s&' % (_('users/'), suser, sortby) try: users = objects_list.page(page) @@ -1128,15 +1130,27 @@ def user_stats(request, user_id, user_view): votes_today = Vote.objects.get_votes_count_today_from_user(user) votes_total = VOTE_RULES['scope_votes_per_user_per_day'] tags = user.created_tags.all().order_by('-used_count')[:50] - awards = Award.objects.extra( - select={'id': 'badge.id', 'count': 'count(badge_id)', 'name':'badge.name', 'description': 'badge.description', 'type': 'badge.type'}, - tables=['award', 'badge'], - order_by=['-awarded_at'], - where=['user_id=%s AND badge_id=badge.id'], - params=[user.id] - ).values('id', 'count', 'name', 'description', 'type') - total_awards = awards.count() - awards.query.group_by = ['badge_id'] + if settings.DJANGO_VERSION < 1.1: + awards = Award.objects.extra( + select={'id': 'badge.id', 'count': 'count(badge_id)', 'name':'badge.name', 'description': 'badge.description', 'type': 'badge.type'}, + tables=['award', 'badge'], + order_by=['-awarded_at'], + where=['user_id=%s AND badge_id=badge.id'], + params=[user.id] + ).values('id', 'count', 'name', 'description', 'type') + total_awards = awards.count() + awards.query.group_by = ['badge_id'] + else: + awards = Award.objects.extra( + select={'id': 'badge.id', 'name':'badge.name', 'description': 'badge.description', 'type': 'badge.type'}, + tables=['award', 'badge'], + order_by=['-awarded_at'], + where=['user_id=%s AND badge_id=badge.id'], + params=[user.id] + ).values('id', 'name', 'description', 'type') + total_awards = awards.count() + from django.db.models import Count + awards = awards.annotate(count = Count('badge__id')) return render_to_response(user_view.template_file,{ "tab_name" : user_view.id, @@ -1169,10 +1183,11 @@ def user_recent(request, user_id, user_view): self.type_id = type self.title = title self.summary = summary + slug_title = slugify(title) if int(answer_id) > 0: - self.title_link = u'/questions/%s/%s#%s' %(question_id, title, answer_id) + self.title_link = u'/%s%s/%s#%s' %(_('questions/'),question_id, slug_title, answer_id) else: - self.title_link = u'/questions/%s/%s' %(question_id, title) + self.title_link = u'/%s%s/%s' %(_('questions/'),question_id, slug_title) class AwardEvent: def __init__(self, time, type, id): @@ -1412,9 +1427,9 @@ def user_responses(request, user_id, user_view): def __init__(self, type, title, question_id, answer_id, time, username, user_id, content): self.type = type self.title = title - self.titlelink = u'/questions/%s/%s#%s' % (question_id, title, answer_id) + self.titlelink = u'/%s%s/%s#%s' % (_('questions/'), question_id, title, answer_id) self.time = time - self.userlink = u'/users/%s/%s/' % (user_id, username) + self.userlink = u'/%s%s/%s/' % (_('users/'), user_id, username) self.username = username self.content = u'%s ...' % strip_tags(content)[:300] @@ -1747,7 +1762,7 @@ def __generate_comments_json(obj, type, user): "add_date" : comment.added_at.strftime('%Y-%m-%d'), "text" : comment.comment, "user_display_name" : comment_user.username, - "user_url" : "/users/%s/%s" % (comment_user.id, comment_user.username), + "user_url" : "/%s%s/%s" % (_('users/'), comment_user.id, comment_user.username), "delete_url" : delete_url }) @@ -2009,9 +2024,9 @@ def search(request): if keywords is None: return HttpResponseRedirect('/') if search_type == 'tag': - return HttpResponseRedirect('/tags/?q=%s&page=%s' % (keywords.strip(), page)) + return HttpResponseRedirect('/%s?q=%s&page=%s' % (_('tags/'), keywords.strip(), page)) elif search_type == "user": - return HttpResponseRedirect('/users/?q=%s&page=%s' % (keywords.strip(), page)) + return HttpResponseRedirect('/%s?q=%s&page=%s' % (_('users/'), keywords.strip(), page)) elif search_type == "question": template_file = "questions.html" diff --git a/locale/en/LC_MESSAGES/django.mo b/locale/en/LC_MESSAGES/django.mo Binary files differindex d7523d09..447afac4 100644 --- a/locale/en/LC_MESSAGES/django.mo +++ b/locale/en/LC_MESSAGES/django.mo diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index 07532566..ff280947 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/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: 2009-08-05 22:26-0400\n" +"POT-Creation-Date: 2009-08-12 15:41+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,16 +16,145 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: settings.py:12 +#: settings.py:12 urls.py:25 forum/views.py:304 forum/views.py:698 msgid "account/" msgstr "" -#: settings.py:12 django_authopenid/urls.py:9 django_authopenid/urls.py:10 -#: django_authopenid/urls.py:11 django_authopenid/urls.py:13 -#: forum/views.py:304 templates/authopenid/confirm_email.txt:10 +#: settings.py:12 urls.py:26 django_authopenid/urls.py:9 +#: django_authopenid/urls.py:10 django_authopenid/urls.py:11 +#: django_authopenid/urls.py:13 forum/views.py:304 forum/views.py:699 +#: templates/authopenid/confirm_email.txt:10 msgid "signin/" msgstr "" +#: urls.py:22 +msgid "upfiles/" +msgstr "" + +#: urls.py:27 urls.py:28 urls.py:29 django_authopenid/urls.py:26 +#: django_authopenid/urls.py:27 +msgid "email/" +msgstr "" + +#: urls.py:27 +msgid "change/" +msgstr "" + +#: urls.py:28 +msgid "sendkey/" +msgstr "" + +#: urls.py:29 +msgid "verify/" +msgstr "" + +#: urls.py:30 +msgid "about/" +msgstr "" + +#: urls.py:31 +msgid "faq/" +msgstr "" + +#: urls.py:32 +msgid "privacy/" +msgstr "" + +#: urls.py:33 +msgid "logout/" +msgstr "" + +#: urls.py:34 urls.py:35 urls.py:36 urls.py:48 forum/models.py:418 +msgid "answers/" +msgstr "" + +#: urls.py:34 urls.py:46 +msgid "comments/" +msgstr "" + +#: urls.py:35 urls.py:40 urls.py:54 templates/user_info.html:34 +msgid "edit/" +msgstr "" + +#: urls.py:36 urls.py:45 +msgid "revisions/" +msgstr "" + +#: urls.py:37 urls.py:38 urls.py:39 urls.py:40 urls.py:41 urls.py:42 +#: urls.py:43 urls.py:44 urls.py:45 urls.py:46 urls.py:47 forum/feed.py:19 +#: forum/models.py:306 forum/views.py:1416 +msgid "questions/" +msgstr "" + +#: urls.py:38 urls.py:64 +msgid "ask/" +msgstr "" + +#: urls.py:39 +msgid "unanswered/" +msgstr "" + +#: urls.py:41 +msgid "close/" +msgstr "" + +#: urls.py:42 +msgid "reopen/" +msgstr "" + +#: urls.py:43 +msgid "answer/" +msgstr "" + +#: urls.py:44 +msgid "vote/" +msgstr "" + +#: urls.py:47 urls.py:48 django_authopenid/urls.py:29 +msgid "delete/" +msgstr "" + +#: urls.py:50 +msgid "question/" +msgstr "" + +#: urls.py:51 urls.py:52 forum/views.py:740 forum/views.py:2013 +msgid "tags/" +msgstr "" + +#: urls.py:53 urls.py:54 urls.py:55 forum/views.py:993 forum/views.py:997 +#: forum/views.py:1418 forum/views.py:1751 forum/views.py:2015 +msgid "users/" +msgstr "" + +#: urls.py:56 urls.py:57 +msgid "badges/" +msgstr "" + +#: urls.py:58 +msgid "messages/" +msgstr "" + +#: urls.py:58 +msgid "markread/" +msgstr "" + +#: urls.py:60 +msgid "nimda/" +msgstr "" + +#: urls.py:62 +msgid "upload/" +msgstr "" + +#: urls.py:63 urls.py:64 urls.py:65 +msgid "books/" +msgstr "" + +#: urls.py:66 +msgid "search/" +msgstr "" + #: django_authopenid/forms.py:67 django_authopenid/views.py:102 msgid "i-names are not supported" msgstr "" @@ -109,7 +238,7 @@ msgstr "" msgid "Incorrect username." msgstr "" -#: django_authopenid/urls.py:10 +#: django_authopenid/urls.py:10 forum/views.py:304 forum/views.py:699 msgid "newquestion/" msgstr "" @@ -137,8 +266,8 @@ msgstr "" msgid "sendpw/" msgstr "" -#: django_authopenid/urls.py:29 -msgid "delete/" +#: django_authopenid/urls.py:27 +msgid "validate/" msgstr "" #: django_authopenid/views.py:108 @@ -146,69 +275,69 @@ msgstr "" msgid "OpenID %(openid_url)s is invalid" msgstr "" -#: django_authopenid/views.py:417 django_authopenid/views.py:544 +#: django_authopenid/views.py:418 django_authopenid/views.py:545 msgid "Welcome" msgstr "Verification Email from Q&A forum" -#: django_authopenid/views.py:507 +#: django_authopenid/views.py:508 msgid "Password changed." msgstr "" -#: django_authopenid/views.py:519 django_authopenid/views.py:524 +#: django_authopenid/views.py:520 django_authopenid/views.py:525 msgid "your email needs to be validated" msgstr "" "Your email needs to be validated. Please see details <a " "id='validate_email_alert' href=\"/faq#validate\">here</a>." -#: django_authopenid/views.py:681 django_authopenid/views.py:833 +#: django_authopenid/views.py:682 django_authopenid/views.py:834 #, python-format msgid "No OpenID %s found associated in our database" msgstr "" -#: django_authopenid/views.py:685 django_authopenid/views.py:840 +#: django_authopenid/views.py:686 django_authopenid/views.py:841 #, python-format msgid "The OpenID %s isn't associated to current user logged in" msgstr "" -#: django_authopenid/views.py:693 +#: django_authopenid/views.py:694 msgid "Email Changed." msgstr "" -#: django_authopenid/views.py:768 +#: django_authopenid/views.py:769 msgid "This OpenID is already associated with another account." msgstr "" -#: django_authopenid/views.py:773 +#: django_authopenid/views.py:774 #, python-format msgid "OpenID %s is now associated with your account." msgstr "" -#: django_authopenid/views.py:843 +#: django_authopenid/views.py:844 msgid "Account deleted." msgstr "" -#: django_authopenid/views.py:883 +#: django_authopenid/views.py:884 msgid "Request for new password" msgstr "" -#: django_authopenid/views.py:896 +#: django_authopenid/views.py:897 msgid "A new password has been sent to your email address." msgstr "" -#: django_authopenid/views.py:926 +#: django_authopenid/views.py:927 #, python-format msgid "" "Could not change password. Confirmation key '%s' is not " "registered." msgstr "" -#: django_authopenid/views.py:935 +#: django_authopenid/views.py:936 msgid "" "Can not change password. User don't exist anymore in our " "database." msgstr "" -#: django_authopenid/views.py:944 +#: django_authopenid/views.py:945 #, python-format msgid "Password changed for %s. You may now sign in." msgstr "" @@ -337,12 +466,8 @@ msgstr "" msgid "latest questions" msgstr "" -#: forum/feed.py:19 -msgid "questions/" -msgstr "" - -#: forum/forms.py:14 templates/answer_edit_tips.html:34 -#: templates/answer_edit_tips.html.py:38 templates/question_edit_tips.html:31 +#: forum/forms.py:14 templates/answer_edit_tips.html:33 +#: templates/answer_edit_tips.html.py:37 templates/question_edit_tips.html:31 #: templates/question_edit_tips.html:36 msgid "title" msgstr "" @@ -363,7 +488,7 @@ msgstr "" msgid "question content must be > 10 characters" msgstr "" -#: forum/forms.py:45 templates/header.html:30 templates/header.html.py:61 +#: forum/forms.py:45 templates/header.html:30 templates/header.html.py:64 msgid "tags" msgstr "" @@ -390,8 +515,8 @@ msgid "" "characters '.-_#'" msgstr "" -#: forum/forms.py:75 templates/index.html:57 templates/question.html:199 -#: templates/question.html.py:380 templates/questions.html:58 +#: forum/forms.py:75 templates/index.html:57 templates/question.html:209 +#: templates/question.html.py:395 templates/questions.html:58 #: templates/questions.html.py:70 templates/unanswered.html:48 #: templates/unanswered.html.py:60 msgid "community wiki" @@ -445,40 +570,44 @@ msgstr "" msgid "this email has already been registered, please use another one" msgstr "" -#: forum/models.py:238 +#: forum/models.py:246 #, python-format msgid "%(author)s modified the question" msgstr "" -#: forum/models.py:242 +#: forum/models.py:250 #, python-format msgid "%(people)s posted %(new_answer_count)s new answers" msgstr "" -#: forum/models.py:247 +#: forum/models.py:255 #, python-format msgid "%(people)s commented the question" msgstr "" -#: forum/models.py:252 +#: forum/models.py:260 #, python-format msgid "%(people)s commented answers" msgstr "" -#: forum/models.py:254 +#: forum/models.py:262 #, python-format -msgid "%(people)s commented the answer" +msgid "%(people)s commented an answer" msgstr "" -#: forum/models.py:433 templates/badges.html:52 +#: forum/models.py:306 forum/models.py:418 +msgid "revisions" +msgstr "" + +#: forum/models.py:441 templates/badges.html:51 msgid "gold" msgstr "" -#: forum/models.py:434 templates/badges.html:60 +#: forum/models.py:442 templates/badges.html:59 msgid "silver" msgstr "" -#: forum/models.py:435 templates/badges.html:67 +#: forum/models.py:443 templates/badges.html:66 msgid "bronze" msgstr "" @@ -566,31 +695,27 @@ msgstr "" msgid "profile - user preferences" msgstr "" -#: forum/views.py:304 -msgid "/account/" -msgstr "" - -#: forum/views.py:943 +#: forum/views.py:947 #, python-format msgid "subscription saved, %(email)s needs validation" msgstr "" "Your subscription is saved, but email address %(email)s needs to be " "validated, please see <a href='/faq#validate'>more details here</a>" -#: forum/views.py:1853 +#: forum/views.py:1860 msgid "uploading images is limited to users with >60 reputation points" msgstr "" -#: forum/views.py:1855 +#: forum/views.py:1862 msgid "allowed file types are 'jpg', 'jpeg', 'gif', 'bmp', 'png', 'tiff'" msgstr "" -#: forum/views.py:1857 +#: forum/views.py:1864 #, python-format msgid "maximum upload file size is %sK" msgstr "" -#: forum/views.py:1859 +#: forum/views.py:1866 #, python-format msgid "" "Error uploading file. Please contact the site administrator. Thank you. %s" @@ -600,16 +725,16 @@ msgstr "" msgid "updates from website" msgstr "" -#: forum/templatetags/extra_tags.py:139 forum/templatetags/extra_tags.py:168 -#: templates/header.html:33 +#: forum/templatetags/extra_tags.py:143 forum/templatetags/extra_tags.py:172 +#: templates/header.html:35 msgid "badges" msgstr "" -#: forum/templatetags/extra_tags.py:140 forum/templatetags/extra_tags.py:167 +#: forum/templatetags/extra_tags.py:144 forum/templatetags/extra_tags.py:171 msgid "reputation points" msgstr "" -#: forum/templatetags/extra_tags.py:221 +#: forum/templatetags/extra_tags.py:225 msgid " ago" msgstr "" @@ -684,13 +809,13 @@ msgid "Edit answer" msgstr "" #: templates/answer_edit.html:24 templates/answer_edit.html.py:27 -#: templates/ask.html:25 templates/ask.html.py:28 templates/question.html:40 -#: templates/question.html.py:43 templates/question_edit.html:27 +#: templates/ask.html:25 templates/ask.html.py:28 templates/question.html:43 +#: templates/question.html.py:46 templates/question_edit.html:27 msgid "hide preview" msgstr "" #: templates/answer_edit.html:27 templates/ask.html:28 -#: templates/question.html:43 templates/question_edit.html:27 +#: templates/question.html:46 templates/question_edit.html:27 msgid "show preview" msgstr "" @@ -710,22 +835,22 @@ msgid "select revision" msgstr "" #: templates/answer_edit.html:62 templates/ask.html:94 -#: templates/question.html:452 templates/question_edit.html:91 +#: templates/question.html:467 templates/question_edit.html:91 msgid "Toggle the real time Markdown editor preview" msgstr "" #: templates/answer_edit.html:62 templates/ask.html:94 -#: templates/question.html:452 templates/question_edit.html:91 +#: templates/question.html:467 templates/question_edit.html:91 msgid "toggle preview" msgstr "" -#: templates/answer_edit.html:73 templates/question_edit.html:119 -#: templates/question_retag.html:75 +#: templates/answer_edit.html:71 templates/question_edit.html:115 +#: templates/question_retag.html:73 msgid "Save edit" msgstr "" -#: templates/answer_edit.html:74 templates/close.html:29 -#: templates/question_edit.html:120 templates/question_retag.html:76 +#: templates/answer_edit.html:72 templates/close.html:29 +#: templates/question_edit.html:116 templates/question_retag.html:74 #: templates/reopen.html:30 templates/user_edit.html:83 #: templates/authopenid/changeemail.html:34 msgid "Cancel" @@ -755,40 +880,40 @@ msgstr "" msgid "see frequently asked questions" msgstr "" -#: templates/answer_edit_tips.html:25 templates/question_edit_tips.html:22 +#: templates/answer_edit_tips.html:24 templates/question_edit_tips.html:22 msgid "Markdown tips" msgstr "Markdown basics" -#: templates/answer_edit_tips.html:28 templates/question_edit_tips.html:25 +#: templates/answer_edit_tips.html:27 templates/question_edit_tips.html:25 msgid "*italic* or __italic__" msgstr "" -#: templates/answer_edit_tips.html:31 templates/question_edit_tips.html:28 +#: templates/answer_edit_tips.html:30 templates/question_edit_tips.html:28 msgid "**bold** or __bold__" msgstr "" -#: templates/answer_edit_tips.html:34 templates/question_edit_tips.html:31 +#: templates/answer_edit_tips.html:33 templates/question_edit_tips.html:31 msgid "link" msgstr "" -#: templates/answer_edit_tips.html:34 templates/answer_edit_tips.html.py:38 +#: templates/answer_edit_tips.html:33 templates/answer_edit_tips.html.py:37 #: templates/question_edit_tips.html:31 templates/question_edit_tips.html:36 msgid "text" msgstr "" -#: templates/answer_edit_tips.html:38 templates/question_edit_tips.html:36 +#: templates/answer_edit_tips.html:37 templates/question_edit_tips.html:36 msgid "image" msgstr "" -#: templates/answer_edit_tips.html:42 templates/question_edit_tips.html:40 +#: templates/answer_edit_tips.html:41 templates/question_edit_tips.html:40 msgid "numbered list:" msgstr "" -#: templates/answer_edit_tips.html:47 templates/question_edit_tips.html:45 +#: templates/answer_edit_tips.html:46 templates/question_edit_tips.html:45 msgid "basic HTML tags are also supported" msgstr "" -#: templates/answer_edit_tips.html:50 templates/question_edit_tips.html:48 +#: templates/answer_edit_tips.html:49 templates/question_edit_tips.html:48 msgid "learn more about Markdown" msgstr "" @@ -816,15 +941,15 @@ msgstr "" "your question now and validate email after that. Your question will saved as " "pending meanwhile. " -#: templates/ask.html:108 +#: templates/ask.html:107 msgid "(required)" msgstr "" -#: templates/ask.html:115 +#: templates/ask.html:114 msgid "Login/signup to post your question" msgstr "Login/Signup to Post" -#: templates/ask.html:117 +#: templates/ask.html:116 msgid "Ask your question" msgstr "Ask Your Question" @@ -840,7 +965,7 @@ msgstr "" msgid "Badges summary" msgstr "" -#: templates/badges.html:17 templates/user_stats.html:113 +#: templates/badges.html:17 templates/user_stats.html:115 msgid "Badges" msgstr "" @@ -862,27 +987,27 @@ msgstr "" "a></strong> - what kinds of badges would you like to see and suggest the " "activity for which those badges might be awarded." -#: templates/badges.html:49 +#: templates/badges.html:48 msgid "Community badges" msgstr "Badge levels" -#: templates/badges.html:55 +#: templates/badges.html:54 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." -#: templates/badges.html:63 +#: templates/badges.html:62 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." -#: templates/badges.html:66 +#: templates/badges.html:65 msgid "bronze badge: often given as a special honor" msgstr "" -#: templates/badges.html:70 +#: templates/badges.html:69 msgid "bronze badge description" msgstr "" "If you are an active participant in this community, you will be recognized " @@ -968,11 +1093,10 @@ msgstr "" msgid "views" msgstr "" -#: templates/book.html:125 templates/index.html:69 templates/question.html:115 -#: templates/question.html.py:486 templates/questions.html:84 -#: templates/questions.html.py:156 templates/tags.html:47 -#: templates/unanswered.html:75 templates/unanswered.html.py:109 -#: templates/users_questions.html:52 +#: templates/book.html:125 templates/index.html:69 templates/question.html:499 +#: templates/questions.html:84 templates/questions.html.py:156 +#: templates/tags.html:49 templates/unanswered.html:75 +#: templates/unanswered.html.py:106 templates/users_questions.html:52 msgid "using tags" msgstr "" @@ -980,7 +1104,7 @@ msgstr "" msgid "subscribe to book RSS feed" msgstr "" -#: templates/book.html:147 templates/index.html:116 +#: templates/book.html:147 templates/index.html:118 msgid "subscribe to the questions feed" msgstr "" @@ -1036,10 +1160,6 @@ msgstr "" msgid "What should I avoid in my answers?" msgstr "" -#: templates/faq.html:28 templates/faq.html.py:132 -msgid "site title" -msgstr "" - #: templates/faq.html:28 msgid "" "is a Q&A site, not a discussion group. Therefore - please avoid having " @@ -1081,61 +1201,72 @@ msgstr "" "rough measure of the community trust to him/her. Various moderation tasks " "are gradually assigned to the users based on those points." -#: templates/faq.html:59 templates/user_votes.html:14 +#: templates/faq.html:42 +msgid "" +"For example, if you ask an interesting question or give a helpful answer, " +"your input will be upvoted. On the other hand if the answer is misleading - " +"it will be downvoted. Each vote in favor will generate <strong>10</strong> " +"points, each vote against will subtract <strong>2</strong> points. There is " +"a limit of <strong>200</strong> points that can be accumulated per question " +"or answer. The table below explains reputation point requirements for each " +"type of moderation task." +msgstr "" + +#: templates/faq.html:53 templates/user_votes.html:14 msgid "upvote" msgstr "" -#: templates/faq.html:63 +#: templates/faq.html:57 msgid "use tags" msgstr "" -#: templates/faq.html:68 +#: templates/faq.html:62 msgid "add comments" msgstr "" -#: templates/faq.html:72 templates/user_votes.html:16 +#: templates/faq.html:66 templates/user_votes.html:16 msgid "downvote" msgstr "" -#: templates/faq.html:75 +#: templates/faq.html:69 msgid "open and close own questions" msgstr "" -#: templates/faq.html:79 +#: templates/faq.html:73 msgid "retag questions" msgstr "" -#: templates/faq.html:83 +#: templates/faq.html:77 msgid "edit community wiki questions" msgstr "" -#: templates/faq.html:87 +#: templates/faq.html:81 msgid "edit any answer" msgstr "" -#: templates/faq.html:91 +#: templates/faq.html:85 msgid "open any closed question" msgstr "" -#: templates/faq.html:95 +#: templates/faq.html:89 msgid "delete any comment" msgstr "" -#: templates/faq.html:99 +#: templates/faq.html:93 msgid "delete any questions and answers and perform other moderation tasks" msgstr "" -#: templates/faq.html:106 +#: templates/faq.html:100 msgid "how to validate email title" msgstr "How to validate email and why?" -#: templates/faq.html:108 +#: templates/faq.html:102 msgid "how to validate email info" msgstr "" "<form style='margin:0;padding:0;' action='/email/sendkey/'><p><span class=" "\"bigger strong\">How?</span> If you have just set or changed your email " -"address - <strong>check your email and click the included link</strong>." -"<br/>The link contains a key generated specifically for you. You can also " +"address - <strong>check your email and click the included link</strong>.<br/" +">The link contains a key generated specifically for you. You can also " "<button style='display:inline' type='submit'><strong>get a new key</strong></" "button> and check your email again.</p></form><span class=\"bigger strong" "\">Why?</span> Email validation is required to make sure that <strong>only " @@ -1145,11 +1276,11 @@ msgstr "" "- create a unique <a href='/faq#gravatar'><strong>gravatar</strong></a> " "personal image.</p>" -#: templates/faq.html:112 +#: templates/faq.html:106 msgid "what is gravatar" msgstr "What is gravatar?" -#: templates/faq.html:113 +#: templates/faq.html:107 msgid "gravatar faq info" msgstr "" "<strong>Gravatar</strong> means <strong>g</strong>lobally <strong>r</" @@ -1160,54 +1291,54 @@ msgstr "" "your image</strong> at <a href='http://gravatar.com'><strong>gravatar.com</" "strong></a>" -#: templates/faq.html:116 +#: templates/faq.html:110 msgid "To register, do I need to create new password?" msgstr "" -#: templates/faq.html:117 +#: templates/faq.html:111 msgid "" "No, you don't have to. You can login through any service that supports " "OpenID, e.g. Google, Yahoo, AOL, etc." msgstr "" -#: templates/faq.html:118 +#: templates/faq.html:112 msgid "Login now!" msgstr "" -#: templates/faq.html:123 +#: templates/faq.html:117 msgid "Why other people can edit my questions/answers?" msgstr "" -#: templates/faq.html:124 +#: templates/faq.html:118 msgid "Goal of this site is..." msgstr "" -#: templates/faq.html:124 +#: templates/faq.html:118 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 "" -#: templates/faq.html:125 +#: templates/faq.html:119 msgid "If this approach is not for you, we respect your choice." msgstr "" -#: templates/faq.html:129 +#: templates/faq.html:123 msgid "Still have questions?" msgstr "" -#: templates/faq.html:130 +#: templates/faq.html:124 msgid "Please ask your question, help make our community better!" msgstr "" "Please <a href=\"/questions/ask\">ask</a> your question, help make our " "community better!" -#: templates/faq.html:132 templates/header.html:29 templates/header.html.py:60 +#: templates/faq.html:126 templates/header.html:29 templates/header.html.py:63 msgid "questions" msgstr "" -#: templates/faq.html:132 templates/index.html:121 +#: templates/faq.html:126 templates/index.html:123 msgid "." msgstr "" @@ -1216,6 +1347,7 @@ msgid "about" msgstr "" #: templates/footer.html:8 templates/header.html:15 templates/index.html:84 +#: templates/question_edit_tips.html:16 msgid "faq" msgstr "" @@ -1251,27 +1383,27 @@ msgstr "" msgid "back to home page" msgstr "" -#: templates/header.html:31 templates/header.html.py:62 +#: templates/header.html:31 templates/header.html.py:65 msgid "users" msgstr "" -#: templates/header.html:32 +#: templates/header.html:33 msgid "books" msgstr "" -#: templates/header.html:34 +#: templates/header.html:36 msgid "unanswered questions" msgstr "unanswered" -#: templates/header.html:38 +#: templates/header.html:40 msgid "my profile" msgstr "" -#: templates/header.html:42 +#: templates/header.html:44 msgid "ask a question" msgstr "" -#: templates/header.html:57 +#: templates/header.html:59 msgid "search" msgstr "" @@ -1317,11 +1449,10 @@ msgstr "" msgid "answers" msgstr "" -#: templates/index.html:69 templates/question.html:115 -#: templates/question.html.py:486 templates/questions.html:84 -#: templates/questions.html.py:156 templates/tags.html:47 -#: templates/unanswered.html:75 templates/unanswered.html.py:109 -#: templates/users_questions.html:52 +#: templates/index.html:69 templates/question.html:499 +#: templates/questions.html:84 templates/questions.html.py:156 +#: templates/tags.html:49 templates/unanswered.html:75 +#: templates/unanswered.html.py:106 templates/users_questions.html:52 msgid "see questions tagged" msgstr "" @@ -1333,48 +1464,48 @@ msgstr "" msgid "Recent tags" msgstr "" -#: templates/index.html:94 +#: templates/index.html:94 templates/question.html:125 #, python-format msgid "see questions tagged '%(tagname)s'" msgstr "" -#: templates/index.html:97 templates/index.html.py:121 +#: templates/index.html:97 templates/index.html.py:123 msgid "popular tags" msgstr "tags" -#: templates/index.html:101 +#: templates/index.html:102 msgid "Recent awards" msgstr "Recent badges" -#: templates/index.html:107 +#: templates/index.html:108 msgid "given to" msgstr "" -#: templates/index.html:112 +#: templates/index.html:113 msgid "all awards" msgstr "all badges" -#: templates/index.html:116 +#: templates/index.html:118 msgid "subscribe to last 30 questions by RSS" msgstr "" -#: templates/index.html:121 +#: templates/index.html:123 msgid "Still looking for more? See" msgstr "" -#: templates/index.html:121 +#: templates/index.html:123 msgid "complete list of questions" msgstr "list of all questions" -#: templates/index.html:121 +#: templates/index.html:123 msgid "or" msgstr "" -#: templates/index.html:121 +#: templates/index.html:123 msgid "Please help us answer" msgstr "" -#: templates/index.html:121 +#: templates/index.html:123 msgid "list of unanswered questions" msgstr "unanswered questions" @@ -1460,187 +1591,189 @@ msgstr "" msgid "how privacy policies can be changed" msgstr "" -#: templates/question.html:69 templates/question.html.py:81 +#: templates/question.html:72 templates/question.html.py:73 +#: templates/question.html:85 templates/question.html.py:87 msgid "i like this post (click again to cancel)" msgstr "" -#: templates/question.html:71 templates/question.html.py:83 -#: templates/question.html:276 +#: templates/question.html:75 templates/question.html.py:89 +#: templates/question.html:289 msgid "current number of votes" msgstr "" -#: templates/question.html:76 templates/question.html.py:87 +#: templates/question.html:80 templates/question.html.py:81 +#: templates/question.html:94 templates/question.html.py:95 msgid "i dont like this post (click again to cancel)" msgstr "" -#: templates/question.html:93 +#: templates/question.html:100 templates/question.html.py:101 msgid "mark this question as favorite (click again to cancel)" msgstr "" -#: templates/question.html:99 +#: templates/question.html:107 templates/question.html.py:108 msgid "remove favorite mark from this question (click again to restore mark)" msgstr "" -#: templates/question.html:124 templates/question.html.py:307 +#: templates/question.html:134 templates/question.html.py:322 #: templates/revisions_answer.html:53 templates/revisions_question.html:53 msgid "edit" msgstr "" -#: templates/question.html:128 templates/question.html.py:317 +#: templates/question.html:138 templates/question.html.py:332 msgid "delete" msgstr "" -#: templates/question.html:133 +#: templates/question.html:143 msgid "reopen" msgstr "" -#: templates/question.html:138 +#: templates/question.html:148 msgid "close" msgstr "" -#: templates/question.html:144 templates/question.html.py:330 +#: templates/question.html:154 templates/question.html.py:345 msgid "" "report as offensive (i.e containing spam, advertising, malicious text, etc.)" msgstr "" -#: templates/question.html:145 templates/question.html.py:331 +#: templates/question.html:155 templates/question.html.py:346 msgid "flag offensive" msgstr "" -#: templates/question.html:157 templates/question.html.py:340 +#: templates/question.html:167 templates/question.html.py:355 #: templates/revisions_answer.html:65 templates/revisions_question.html:65 msgid "updated" msgstr "" -#: templates/question.html:206 templates/question.html.py:387 +#: templates/question.html:216 templates/question.html.py:402 #: templates/revisions_answer.html:63 templates/revisions_question.html:63 msgid "asked" msgstr "" -#: templates/question.html:236 templates/question.html.py:414 +#: templates/question.html:246 templates/question.html.py:429 msgid "comments" msgstr "" -#: templates/question.html:237 templates/question.html.py:415 +#: templates/question.html:247 templates/question.html.py:430 msgid "add comment" msgstr "" -#: templates/question.html:250 +#: templates/question.html:260 #, python-format msgid "" "The question has been closed for the following reason \"%(question." "get_close_reason_display)s\" by" msgstr "" -#: templates/question.html:252 +#: templates/question.html:262 #, python-format msgid "close date %(question.closed_at)s" msgstr "" -#: templates/question.html:259 templates/user_stats.html:28 +#: templates/question.html:269 templates/user_stats.html:28 msgid "Answers" msgstr " Answers" -#: templates/question.html:261 +#: templates/question.html:271 msgid "oldest answers will be shown first" msgstr "" -#: templates/question.html:261 +#: templates/question.html:271 msgid "oldest answers" msgstr "oldest" -#: templates/question.html:262 +#: templates/question.html:272 msgid "newest answers will be shown first" msgstr "" -#: templates/question.html:262 +#: templates/question.html:272 msgid "newest answers" msgstr "newest" -#: templates/question.html:263 +#: templates/question.html:273 msgid "most voted answers will be shown first" msgstr "" -#: templates/question.html:263 +#: templates/question.html:273 msgid "popular answers" msgstr "most voted" -#: templates/question.html:275 +#: templates/question.html:287 templates/question.html.py:288 msgid "i like this answer (click again to cancel)" msgstr "" -#: templates/question.html:281 +#: templates/question.html:294 templates/question.html.py:295 msgid "i dont like this answer (click again to cancel)" msgstr "" -#: templates/question.html:287 +#: templates/question.html:300 templates/question.html.py:301 msgid "mark this answer as favorite (click again to undo)" msgstr "" -#: templates/question.html:292 +#: templates/question.html:306 templates/question.html.py:307 msgid "the author of the question has selected this answer as correct" msgstr "" -#: templates/question.html:314 +#: templates/question.html:329 msgid "undelete" msgstr "" -#: templates/question.html:324 +#: templates/question.html:339 msgid "answer permanent link" msgstr "" -#: templates/question.html:325 +#: templates/question.html:340 msgid "permanent link" msgstr "" -#: templates/question.html:438 +#: templates/question.html:453 msgid "Your answer" msgstr "" -#: templates/question.html:441 +#: templates/question.html:456 msgid "you can answer anonymously and then login" msgstr "" "<span class='strong big'>You are now not logged in</span> but you can answer " "first and then login" -#: templates/question.html:465 +#: templates/question.html:479 msgid "Answer the question" msgstr "" -#: templates/question.html:467 +#: templates/question.html:481 msgid "Notify me daily if there are any new answers." msgstr "" -#: templates/question.html:469 +#: templates/question.html:483 msgid "once you sign in you will be able to subscribe for any updates here" msgstr "Here logged in users can sign up for the question updates." -#: templates/question.html:481 +#: templates/question.html:494 msgid "Question tags" msgstr "Tags" -#: templates/question.html:491 +#: templates/question.html:504 msgid "question asked" msgstr "Asked" -#: templates/question.html:491 templates/question.html.py:497 +#: templates/question.html:504 templates/question.html.py:510 #: templates/user_info.html:51 msgid "ago" msgstr "" -#: templates/question.html:494 +#: templates/question.html:507 msgid "question was seen" msgstr "Seen" -#: templates/question.html:494 +#: templates/question.html:507 msgid "times" msgstr "" -#: templates/question.html:497 +#: templates/question.html:510 msgid "last updated" msgstr "Last updated" -#: templates/question.html:502 +#: templates/question.html:515 msgid "Related questions" msgstr "" @@ -1668,15 +1801,15 @@ msgstr "" msgid "up to 5 tags, less than 20 characters each" msgstr "" -#: templates/question_retag.html:86 +#: templates/question_retag.html:82 msgid "Why use and modify tags?" msgstr "" -#: templates/question_retag.html:89 +#: templates/question_retag.html:85 msgid "tags help us keep Questions organized" msgstr "" -#: templates/question_retag.html:95 +#: templates/question_retag.html:91 msgid "tag editors receive special awards from the community" msgstr "" @@ -1720,8 +1853,8 @@ msgstr[0] "" "class=\"tag\">%(tagname)s</span>" msgstr[1] "" "\n" -"<span class=\"questions-count\">%(q_num)s</span><br/>questions tagged " -"<span class=\"tag\">%(tagname)s</span>" +"<span class=\"questions-count\">%(q_num)s</span><br/>questions tagged <span " +"class=\"tag\">%(tagname)s</span>" #: templates/questions.html:116 #, python-format @@ -1787,7 +1920,7 @@ msgstr "" msgid "Most voted questions are shown first." msgstr "" -#: templates/questions.html:153 templates/unanswered.html:105 +#: templates/questions.html:153 templates/unanswered.html:102 msgid "Related tags" msgstr "Tags" @@ -1824,35 +1957,35 @@ msgstr "" msgid "Revision history" msgstr "" -#: templates/tags.html:6 templates/tags.html.py:29 +#: templates/tags.html:6 templates/tags.html.py:30 msgid "Tag list" msgstr "" -#: templates/tags.html:31 +#: templates/tags.html:32 msgid "sorted alphabetically" msgstr "" -#: templates/tags.html:31 +#: templates/tags.html:32 msgid "by name" msgstr "" -#: templates/tags.html:32 +#: templates/tags.html:33 msgid "sorted by frequency of tag use" msgstr "" -#: templates/tags.html:32 +#: templates/tags.html:33 msgid "by popularity" msgstr "" -#: templates/tags.html:38 +#: templates/tags.html:39 msgid "All tags matching query" msgstr "" -#: templates/tags.html:38 +#: templates/tags.html:39 msgid "all tags - make this empty in english" msgstr "" -#: templates/tags.html:41 +#: templates/tags.html:42 msgid "Nothing found" msgstr "" @@ -1864,12 +1997,8 @@ msgstr "" #, python-format msgid "have %(num_q)s unanswered questions" msgstr "" -"<span class=\"questions-count\">%(num_q)s</span><br/><strong>unanswered</strong> " -"questions" - -#: templates/unanswered.html:99 -msgid "Have a total of" -msgstr "" +"<span class=\"questions-count\">%(num_q)s</span><br/> questions with " +"<strong>no accepted answers</strong>" #: templates/user_edit.html:6 msgid "Edit user profile" @@ -1939,61 +2068,61 @@ msgstr "" msgid "Connect with Twitter" msgstr "" -#: templates/user_preferences.html:12 +#: templates/user_preferences.html:13 msgid "Twitter account name:" msgstr "" -#: templates/user_preferences.html:14 +#: templates/user_preferences.html:15 msgid "Twitter password:" msgstr "" -#: templates/user_preferences.html:16 +#: templates/user_preferences.html:17 msgid "Send my Questions to Twitter" msgstr "" -#: templates/user_preferences.html:17 +#: templates/user_preferences.html:18 msgid "Send my Answers to Twitter" msgstr "" -#: templates/user_preferences.html:18 +#: templates/user_preferences.html:19 msgid "Save" msgstr "" -#: templates/user_stats.html:15 +#: templates/user_stats.html:16 msgid "User questions" msgstr "" -#: templates/user_stats.html:37 +#: templates/user_stats.html:38 #, python-format msgid "the answer has been voted for %(vote_count)s times" msgstr "" -#: templates/user_stats.html:37 +#: templates/user_stats.html:38 msgid "this answer has been selected as correct" msgstr "" -#: templates/user_stats.html:43 +#: templates/user_stats.html:46 #, python-format -msgid "the answer has been commented %(answered_question.comment_count)s times" -msgstr "" +msgid "the answer has been commented %(comment_count)s times" +msgstr "(%(comment_count)s comment(s))" -#: templates/user_stats.html:56 +#: templates/user_stats.html:60 msgid "votes total" msgstr "Votes" -#: templates/user_stats.html:65 +#: templates/user_stats.html:69 msgid "user has voted up this many times" msgstr "" -#: templates/user_stats.html:70 +#: templates/user_stats.html:74 msgid "user voted down this many times" msgstr "" -#: templates/user_stats.html:84 +#: templates/user_stats.html:87 msgid "Tags" msgstr "" -#: templates/user_stats.html:94 +#: templates/user_stats.html:97 #, python-format msgid "see other questions tagged '%(tag)s' " msgstr "" @@ -2078,7 +2207,7 @@ msgstr "" "anyone, must be valid)" #: templates/authopenid/changeemail.html:31 -#: templates/authopenid/signin.html:138 +#: templates/authopenid/signin.html:136 msgid "Password" msgstr "" @@ -2207,7 +2336,7 @@ msgid "This account already exists, please use another." msgstr "" #: templates/authopenid/complete.html:19 templates/authopenid/complete.html:32 -#: templates/authopenid/signin.html:121 +#: templates/authopenid/signin.html:120 msgid "Sorry, looks like we have some errors:" msgstr "" @@ -2241,7 +2370,7 @@ msgstr "" msgid "Register" msgstr "" -#: templates/authopenid/complete.html:62 templates/authopenid/signin.html:140 +#: templates/authopenid/complete.html:62 templates/authopenid/signin.html:138 msgid "Forgot your password?" msgstr "" @@ -2432,8 +2561,9 @@ msgid "Click to sign in through any of these services." msgstr "" "<p><span class=\"big strong\">We accept <a href=\"http://openid.net" "\">OpenID</a> login.</span> <font color=\"gray\">Instead of creating a new " -"password - log in through any of the services below.</font></p><p><span class=\"big " -"strong\">1. Select the login service by clicking one of the icons</span></p>" +"password - log in through any of the services below.</font></p><p><span " +"class=\"big strong\">1. Select the login service by clicking one of the " +"icons</span></p>" #: templates/authopenid/signin.html:103 msgid "Enter your <span id=\"enter_your_what\">Provider user name</span>" @@ -2451,7 +2581,7 @@ msgstr "" "\"http://openid.net\">OpenID</a> web address</span><br/>(or choose specific " "provider by clicking on one of the icons above)" -#: templates/authopenid/signin.html:112 templates/authopenid/signin.html:139 +#: templates/authopenid/signin.html:112 templates/authopenid/signin.html:137 msgid "Login" msgstr "" @@ -2461,45 +2591,45 @@ msgstr "" "You can log in either through one of these services or traditionally - using " "local username/password." -#: templates/authopenid/signin.html:136 +#: templates/authopenid/signin.html:134 msgid "Use login name and password" msgstr "" -#: templates/authopenid/signin.html:137 +#: templates/authopenid/signin.html:135 msgid "Login name" msgstr "" -#: templates/authopenid/signin.html:141 +#: templates/authopenid/signin.html:139 msgid "Create new account" msgstr "" -#: templates/authopenid/signin.html:150 +#: templates/authopenid/signin.html:148 msgid "Why use OpenID?" msgstr "" -#: templates/authopenid/signin.html:154 +#: templates/authopenid/signin.html:151 msgid "with openid it is easier" msgstr "With the OpenID you don't need to create new username and password." -#: templates/authopenid/signin.html:157 +#: templates/authopenid/signin.html:154 msgid "reuse openid" msgstr "You can safely re-use the same login for all OpenID-enabled websites." -#: templates/authopenid/signin.html:160 +#: templates/authopenid/signin.html:157 msgid "openid is widely adopted" msgstr "" "There are > 160,000,000 OpenID account in use. Over 10,000 sites are OpenID-" "enabled." -#: templates/authopenid/signin.html:163 +#: templates/authopenid/signin.html:160 msgid "openid is supported open standard" msgstr "OpenID is based on an open standard, supported by many organizations." -#: templates/authopenid/signin.html:167 +#: templates/authopenid/signin.html:165 msgid "Find out more" msgstr "" -#: templates/authopenid/signin.html:168 +#: templates/authopenid/signin.html:166 msgid "Get OpenID" msgstr "" @@ -2533,11 +2663,11 @@ msgstr "" msgid "back to login" msgstr "" -#: templates/authopenid/signup.html:48 +#: templates/authopenid/signup.html:46 msgid "Register with your OpenID" msgstr "" -#: templates/authopenid/signup.html:51 +#: templates/authopenid/signup.html:49 msgid "Login with your OpenID" msgstr "" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo Binary files differindex 4a60a0d7..bdd1b3b2 100644 --- a/locale/es/LC_MESSAGES/django.mo +++ b/locale/es/LC_MESSAGES/django.mo diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index ebba8c8d..b7324b7f 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -1,30 +1,154 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# msgid "" msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" +"Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-08-05 22:28-0400\n" -"PO-Revision-Date: 2009-08-12 11:04-0600\n" -"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"POT-Creation-Date: 2009-08-12 15:53+0000\n" +"PO-Revision-Date: 2009-08-16 17:05-0600\n" +"Last-Translator: Bruno Sarlo <bsarlo@gmail.com>\n" "Language-Team: LANGUAGE <LL@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: settings.py:12 +#: settings.py:12 urls.py:25 forum/views.py:304 forum/views.py:698 msgid "account/" msgstr "cuenta/" -#: settings.py:12 django_authopenid/urls.py:9 django_authopenid/urls.py:10 -#: django_authopenid/urls.py:11 django_authopenid/urls.py:13 -#: forum/views.py:304 templates/authopenid/confirm_email.txt:10 +#: settings.py:12 urls.py:26 django_authopenid/urls.py:9 +#: django_authopenid/urls.py:10 django_authopenid/urls.py:11 +#: django_authopenid/urls.py:13 forum/views.py:304 forum/views.py:699 +#: templates/authopenid/confirm_email.txt:10 msgid "signin/" msgstr "ingresar/" +#: urls.py:22 +msgid "upfiles/" +msgstr "archivossubidos/" + +#: urls.py:27 urls.py:28 urls.py:29 django_authopenid/urls.py:26 +#: django_authopenid/urls.py:27 +msgid "email/" +msgstr "email/" + +#: urls.py:27 +msgid "change/" +msgstr "cambiar/" + +#: urls.py:28 +msgid "sendkey/" +msgstr "enviarclave/" + +#: urls.py:29 +msgid "verify/" +msgstr "verificar/" + +#: urls.py:30 +msgid "about/" +msgstr "acercadenosotros/" + +#: urls.py:31 +msgid "faq/" +msgstr "preguntasfrecuentes/" + +#: urls.py:32 +msgid "privacy/" +msgstr "códigodeprivacidad/" + +#: urls.py:33 +msgid "logout/" +msgstr "cerrarsesion/" + +#: urls.py:34 urls.py:35 urls.py:36 urls.py:48 forum/models.py:418 +msgid "answers/" +msgstr "respuestas/" + +#: urls.py:34 urls.py:46 +msgid "comments/" +msgstr "comentarios/" + +#: urls.py:35 urls.py:40 urls.py:54 templates/user_info.html:34 +msgid "edit/" +msgstr "editar/" + +#: urls.py:36 urls.py:45 +msgid "revisions/" +msgstr "revisiones/" + +#: urls.py:37 urls.py:38 urls.py:39 urls.py:40 urls.py:41 urls.py:42 +#: urls.py:43 urls.py:44 urls.py:45 urls.py:46 urls.py:47 forum/feed.py:19 +#: forum/models.py:306 forum/views.py:1416 +msgid "questions/" +msgstr "preguntas/" + +#: urls.py:38 urls.py:64 +msgid "ask/" +msgstr "preguntar/" + +#: urls.py:39 +msgid "unanswered/" +msgstr "sinrespuesta/" + +#: urls.py:41 +msgid "close/" +msgstr "cerrar/" + +#: urls.py:42 +msgid "reopen/" +msgstr "reabrir/" + +#: urls.py:43 +msgid "answer/" +msgstr "respuesta/" + +#: urls.py:44 +msgid "vote/" +msgstr "votar/" + +#: urls.py:47 urls.py:48 django_authopenid/urls.py:29 +msgid "delete/" +msgstr "borrar/" + +#: urls.py:50 +msgid "question/" +msgstr "pregunta/" + +#: urls.py:51 urls.py:52 forum/views.py:740 forum/views.py:2013 +msgid "tags/" +msgstr "etiquetas/" + +#: urls.py:53 urls.py:54 urls.py:55 forum/views.py:993 forum/views.py:997 +#: forum/views.py:1418 forum/views.py:1751 forum/views.py:2015 +msgid "users/" +msgstr "usuarios/" + +#: urls.py:56 urls.py:57 +msgid "badges/" +msgstr "distinciones/" + +#: urls.py:58 +msgid "messages/" +msgstr "mensajes/" + +#: urls.py:58 +msgid "markread/" +msgstr "marcarleido/" + +#: urls.py:60 +msgid "nimda/" +msgstr "administrador/" + +#: urls.py:62 +msgid "upload/" +msgstr "subir/" + +#: urls.py:63 urls.py:64 urls.py:65 +msgid "books/" +msgstr "libros/" + +#: urls.py:66 +msgid "search/" +msgstr "buscar/" + #: django_authopenid/forms.py:67 django_authopenid/views.py:102 msgid "i-names are not supported" msgstr "i-names no son soportados" @@ -116,9 +240,9 @@ msgstr "la nueva contraseña no coincide" msgid "Incorrect username." msgstr "Nombre de usuario incorrecto" -#: django_authopenid/urls.py:10 +#: django_authopenid/urls.py:10 forum/views.py:304 forum/views.py:699 msgid "newquestion/" -msgstr "nueva-pregunta/" +msgstr "nuevapregunta/" #: django_authopenid/urls.py:11 msgid "newanswer/" @@ -144,63 +268,63 @@ msgstr "registrarse/" msgid "sendpw/" msgstr "enviarcontrasena/" -#: django_authopenid/urls.py:29 -msgid "delete/" -msgstr "borrar/" +#: django_authopenid/urls.py:27 +msgid "validate/" +msgstr "" #: django_authopenid/views.py:108 #, python-format msgid "OpenID %(openid_url)s is invalid" -msgstr "" +msgstr "El OpenID %(openid_url)s no es valido" -#: django_authopenid/views.py:417 django_authopenid/views.py:544 +#: django_authopenid/views.py:418 django_authopenid/views.py:545 msgid "Welcome" msgstr "Bienvenido" -#: django_authopenid/views.py:507 +#: django_authopenid/views.py:508 msgid "Password changed." msgstr "Contraseña modificada" -#: django_authopenid/views.py:519 django_authopenid/views.py:524 +#: django_authopenid/views.py:520 django_authopenid/views.py:525 msgid "your email needs to be validated" msgstr "su correo electrónico necesita ser validado" -#: django_authopenid/views.py:681 django_authopenid/views.py:833 +#: django_authopenid/views.py:682 django_authopenid/views.py:834 #, python-format msgid "No OpenID %s found associated in our database" msgstr "El OpenID %s no esta asociada en nuestra base de datos" -#: django_authopenid/views.py:685 django_authopenid/views.py:840 +#: django_authopenid/views.py:686 django_authopenid/views.py:841 #, python-format msgid "The OpenID %s isn't associated to current user logged in" msgstr "El OpenID %s no esta asociada al usuario actualmente autenticado" -#: django_authopenid/views.py:693 +#: django_authopenid/views.py:694 msgid "Email Changed." msgstr "Email modificado" -#: django_authopenid/views.py:768 +#: django_authopenid/views.py:769 msgid "This OpenID is already associated with another account." msgstr "Este OpenID ya está asociada a otra cuenta." -#: django_authopenid/views.py:773 +#: django_authopenid/views.py:774 #, python-format msgid "OpenID %s is now associated with your account." msgstr "El OpenID %s está ahora asociada con tu cuenta." -#: django_authopenid/views.py:843 +#: django_authopenid/views.py:844 msgid "Account deleted." msgstr "Cuenta borrada." -#: django_authopenid/views.py:883 +#: django_authopenid/views.py:884 msgid "Request for new password" msgstr "Pedir nueva contraseña" -#: django_authopenid/views.py:896 +#: django_authopenid/views.py:897 msgid "A new password has been sent to your email address." msgstr "Una nueva contraseña ha sido enviada a tu cuenta de Email." -#: django_authopenid/views.py:926 +#: django_authopenid/views.py:927 #, python-format msgid "" "Could not change password. Confirmation key '%s' is not " @@ -209,7 +333,7 @@ msgstr "" "No se ha podido modificar la contraseña. La clave de confirmación '%s' no " "está registrada" -#: django_authopenid/views.py:935 +#: django_authopenid/views.py:936 msgid "" "Can not change password. User don't exist anymore in our " "database." @@ -217,7 +341,7 @@ msgstr "" "No se puede cambiar la contraseña. El usuario no existe más en nuestra base " "de datos." -#: django_authopenid/views.py:944 +#: django_authopenid/views.py:945 #, python-format msgid "Password changed for %s. You may now sign in." msgstr "Contraseña cambiada por %s. Ahora puedes ingresar." @@ -260,7 +384,7 @@ msgstr "pregunta" #: forum/const.py:57 templates/book.html:110 msgid "answer" -msgstr "resputa" +msgstr "respuesta" #: forum/const.py:58 msgid "commented question" @@ -346,12 +470,8 @@ msgstr " - " msgid "latest questions" msgstr "últimas preguntas" -#: forum/feed.py:19 -msgid "questions/" -msgstr "preguntas/" - -#: forum/forms.py:14 templates/answer_edit_tips.html:34 -#: templates/answer_edit_tips.html.py:38 templates/question_edit_tips.html:31 +#: forum/forms.py:14 templates/answer_edit_tips.html:33 +#: templates/answer_edit_tips.html.py:37 templates/question_edit_tips.html:31 #: templates/question_edit_tips.html:36 msgid "title" msgstr "título" @@ -372,7 +492,7 @@ msgstr "contenido" msgid "question content must be > 10 characters" msgstr "el contenido de la pregunta debe ser al menos de 10 caracteres" -#: forum/forms.py:45 templates/header.html:30 templates/header.html.py:61 +#: forum/forms.py:45 templates/header.html:30 templates/header.html.py:64 msgid "tags" msgstr "etiquetas" @@ -380,6 +500,8 @@ msgstr "etiquetas" msgid "" "Tags are short keywords, with no spaces within. Up to five tags can be used." msgstr "" +"por favor utilice espacio para separar las etiquetas (esto habilitael auto-" +"completado)" #: forum/forms.py:54 templates/question_retag.html:38 msgid "tags are required" @@ -401,8 +523,8 @@ msgstr "" "por favor use solo los siguientes caracteres en los nombres de etiquetas: " "letras 'a-z', números y caracteres '.-_#'" -#: forum/forms.py:75 templates/index.html:57 templates/question.html:199 -#: templates/question.html.py:380 templates/questions.html:58 +#: forum/forms.py:75 templates/index.html:57 templates/question.html:209 +#: templates/question.html.py:395 templates/questions.html:58 #: templates/questions.html.py:70 templates/unanswered.html:48 #: templates/unanswered.html.py:60 msgid "community wiki" @@ -460,42 +582,45 @@ msgstr "Perfil" msgid "this email has already been registered, please use another one" msgstr "este email ya ha sido registrado, por favor use otro" -#: forum/models.py:238 -#, fuzzy, python-format +#: forum/models.py:246 msgid "%(author)s modified the question" -msgstr "%(author) modificó la pregunta" +msgstr "%(author)s modificó la pregunta" -#: forum/models.py:242 +#: forum/models.py:250 #, python-format msgid "%(people)s posted %(new_answer_count)s new answers" msgstr "%(people)s publicaron %(new_answer_count)s nuevas respuestas" -#: forum/models.py:247 +#: forum/models.py:255 #, python-format msgid "%(people)s commented the question" msgstr "%(people)s comentarion la pregunta" -#: forum/models.py:252 +#: forum/models.py:260 #, python-format msgid "%(people)s commented answers" msgstr "%(people)s comentaron la respuesta" -#: forum/models.py:254 +#: forum/models.py:262 #, python-format -msgid "%(people)s commented the answer" -msgstr "%(people)s comentaron la respuestas" +msgid "%(people)s commented an answer" +msgstr "%(people)s comentaron la respuesta" -#: forum/models.py:433 templates/badges.html:52 +#: forum/models.py:306 forum/models.py:418 +msgid "revisions" +msgstr "revisiones/" + +#: forum/models.py:441 templates/badges.html:51 msgid "gold" msgstr "oro" -#: forum/models.py:434 templates/badges.html:60 +#: forum/models.py:442 templates/badges.html:59 msgid "silver" msgstr "plata" -#: forum/models.py:435 templates/badges.html:67 +#: forum/models.py:443 templates/badges.html:66 msgid "bronze" -msgstr "bronze" +msgstr "bronce" #: forum/user.py:16 templates/user_tabs.html:7 msgid "overview" @@ -551,7 +676,7 @@ msgstr "preguntas favoritas" #: forum/user.py:51 msgid "users favorite questions" -msgstr "preguntas favoritas del usuario" +msgstr "preguntas favoritas de los usuarios" #: forum/user.py:52 msgid "profile - favorite questions" @@ -581,31 +706,27 @@ msgstr "preferencias del usuario" msgid "profile - user preferences" msgstr "perfil - preferencia de " -#: forum/views.py:304 -msgid "/account/" -msgstr "/cuenta/" - -#: forum/views.py:943 +#: forum/views.py:947 #, python-format msgid "subscription saved, %(email)s needs validation" msgstr "subscripción guardada, %(email)s necesita validación" -#: forum/views.py:1853 +#: forum/views.py:1860 msgid "uploading images is limited to users with >60 reputation points" msgstr "para subir imagenes debes tener más de 60 puntos de reputación" -#: forum/views.py:1855 +#: forum/views.py:1862 msgid "allowed file types are 'jpg', 'jpeg', 'gif', 'bmp', 'png', 'tiff'" msgstr "" "los tipos de archivos permitidos son 'jpg', 'jpeg', 'gif', 'bmp', 'png', " "'tiff'" -#: forum/views.py:1857 +#: forum/views.py:1864 #, python-format msgid "maximum upload file size is %sK" msgstr "tamaño máximo permitido es archivo %sK" -#: forum/views.py:1859 +#: forum/views.py:1866 #, python-format msgid "" "Error uploading file. Please contact the site administrator. Thank you. %s" @@ -616,16 +737,16 @@ msgstr "" msgid "updates from website" msgstr "actualizaciones del sitio" -#: forum/templatetags/extra_tags.py:139 forum/templatetags/extra_tags.py:168 -#: templates/header.html:33 +#: forum/templatetags/extra_tags.py:143 forum/templatetags/extra_tags.py:172 +#: templates/header.html:35 msgid "badges" msgstr "distinciones" -#: forum/templatetags/extra_tags.py:140 forum/templatetags/extra_tags.py:167 +#: forum/templatetags/extra_tags.py:144 forum/templatetags/extra_tags.py:171 msgid "reputation points" msgstr "puntos de reputación" -#: forum/templatetags/extra_tags.py:221 +#: forum/templatetags/extra_tags.py:225 msgid " ago" msgstr " atras" @@ -675,7 +796,7 @@ msgstr "ver todas las tags" #: templates/500.html:22 msgid "sorry, system error" -msgstr "" +msgstr "lo sentimos, ha habido un error del sistema" #: templates/500.html:24 msgid "system error log is recorded, error will be fixed as soon as possible" @@ -703,13 +824,13 @@ msgid "Edit answer" msgstr "Editar respuesta" #: templates/answer_edit.html:24 templates/answer_edit.html.py:27 -#: templates/ask.html:25 templates/ask.html.py:28 templates/question.html:40 -#: templates/question.html.py:43 templates/question_edit.html:27 +#: templates/ask.html:25 templates/ask.html.py:28 templates/question.html:43 +#: templates/question.html.py:46 templates/question_edit.html:27 msgid "hide preview" msgstr "ocultar previsualización" #: templates/answer_edit.html:27 templates/ask.html:28 -#: templates/question.html:43 templates/question_edit.html:27 +#: templates/question.html:46 templates/question_edit.html:27 msgid "show preview" msgstr "ver previsualización" @@ -729,22 +850,22 @@ msgid "select revision" msgstr "seleccionar revisión" #: templates/answer_edit.html:62 templates/ask.html:94 -#: templates/question.html:452 templates/question_edit.html:91 +#: templates/question.html:467 templates/question_edit.html:91 msgid "Toggle the real time Markdown editor preview" msgstr "Activar la visualización en tiempo real de Markdown" #: templates/answer_edit.html:62 templates/ask.html:94 -#: templates/question.html:452 templates/question_edit.html:91 +#: templates/question.html:467 templates/question_edit.html:91 msgid "toggle preview" msgstr "Activar previsualización" -#: templates/answer_edit.html:73 templates/question_edit.html:119 -#: templates/question_retag.html:75 +#: templates/answer_edit.html:71 templates/question_edit.html:115 +#: templates/question_retag.html:73 msgid "Save edit" msgstr "Guardar la edición" -#: templates/answer_edit.html:74 templates/close.html:29 -#: templates/question_edit.html:120 templates/question_retag.html:76 +#: templates/answer_edit.html:72 templates/close.html:29 +#: templates/question_edit.html:116 templates/question_retag.html:74 #: templates/reopen.html:30 templates/user_edit.html:83 #: templates/authopenid/changeemail.html:34 msgid "Cancel" @@ -774,65 +895,76 @@ msgstr "ser claro y conciso" msgid "see frequently asked questions" msgstr "ver preguntas frecuentes" -#: templates/answer_edit_tips.html:25 templates/question_edit_tips.html:22 +#: templates/answer_edit_tips.html:24 templates/question_edit_tips.html:22 msgid "Markdown tips" msgstr "sugerencias de Markdown" -#: templates/answer_edit_tips.html:28 templates/question_edit_tips.html:25 +#: templates/answer_edit_tips.html:27 templates/question_edit_tips.html:25 msgid "*italic* or __italic__" msgstr "*itálica* o __itálica__" -#: templates/answer_edit_tips.html:31 templates/question_edit_tips.html:28 +#: templates/answer_edit_tips.html:30 templates/question_edit_tips.html:28 msgid "**bold** or __bold__" msgstr "**negrita** o __negrita__" -#: templates/answer_edit_tips.html:34 templates/question_edit_tips.html:31 +#: templates/answer_edit_tips.html:33 templates/question_edit_tips.html:31 msgid "link" msgstr "enlace" -#: templates/answer_edit_tips.html:34 templates/answer_edit_tips.html.py:38 +#: templates/answer_edit_tips.html:33 templates/answer_edit_tips.html.py:37 #: templates/question_edit_tips.html:31 templates/question_edit_tips.html:36 msgid "text" msgstr "texto" -#: templates/answer_edit_tips.html:38 templates/question_edit_tips.html:36 +#: templates/answer_edit_tips.html:37 templates/question_edit_tips.html:36 msgid "image" msgstr "imagen" -#: templates/answer_edit_tips.html:42 templates/question_edit_tips.html:40 +#: templates/answer_edit_tips.html:41 templates/question_edit_tips.html:40 msgid "numbered list:" msgstr "lista numerada" -#: templates/answer_edit_tips.html:47 templates/question_edit_tips.html:45 +#: templates/answer_edit_tips.html:46 templates/question_edit_tips.html:45 msgid "basic HTML tags are also supported" msgstr "etiquetas básicas de HTML permitidas" -#: templates/answer_edit_tips.html:50 templates/question_edit_tips.html:48 +#: templates/answer_edit_tips.html:49 templates/question_edit_tips.html:48 msgid "learn more about Markdown" msgstr "aprender mas sobre Markdown" #: templates/ask.html:4 templates/ask.html.py:60 msgid "Ask a question" -msgstr "Preguntar" +msgstr "Hacer una pregunta" #: templates/ask.html:67 msgid "login to post question info" -msgstr "Inicie sesión para publicar pregunta." +msgstr "" +"<span class='strong big'>Puedes comenzar a realizar tu pregunta de forma " +"anonima</span> - actualmente no te encuentras Ingresado. Cuando envíes tu " +"pregunta, serás redireccionado a la página de Ingreso/registro. Tu pregunta " +"será guardada temporalemente y será enviada cuando ingreses. El proceso de " +"Ingreso/Registro es muy simple. Ingresar lleva unos 30 segundos, registrarse " +"por primera vez lleva un minuto." #: templates/ask.html:73 #, python-format msgid "must have valid %(email)s to post" -msgstr "debe de tener un %(email)s válido para publicar" +msgstr "" +"<span class='strong big'>Parece ser que tu dirección de email, %(email)s no " +"ha sido validada aún.</span> Para enviar mensajes debes verificar tu " +"dirección de email, puedes ver <a href='/faq#validate'>más detalles aquí</" +"a>. <br/> Puedes enviar tu pregunta ahora y validar tu email luego. Tu " +"pregunta será guardada mientras tanto y publicada cuando valides tu email." -#: templates/ask.html:108 +#: templates/ask.html:107 msgid "(required)" msgstr "(requerido)" -#: templates/ask.html:115 +#: templates/ask.html:114 msgid "Login/signup to post your question" msgstr "Iniciar sesión/registrarse para publicar su pregunta" -#: templates/ask.html:117 +#: templates/ask.html:116 msgid "Ask your question" msgstr "Haz tu pregunta" @@ -848,7 +980,7 @@ msgstr "Usuarios han sido galardonados con distinciones:" msgid "Badges summary" msgstr "Resumen de distinciones" -#: templates/badges.html:17 templates/user_stats.html:113 +#: templates/badges.html:17 templates/user_stats.html:115 msgid "Badges" msgstr "Distinciones" @@ -861,32 +993,32 @@ msgid "" "Below is the list of available badges and number of times each type of badge " "has been awarded." msgstr "" -"Debajo esta la lista de las distinciones disponibles y la cantidad de " -"veces que han sido asignadas." +"Debajo esta la lista de las distinciones disponibles y la cantidad de veces " +"que han sido asignadas." -#: templates/badges.html:49 +#: templates/badges.html:48 msgid "Community badges" msgstr "Distinciones de la comunidad" -#: templates/badges.html:55 +#: templates/badges.html:54 msgid "gold badge description" msgstr "" "Las distinciones de Oro son excepcionales. Para obtenerla debes demostrar un " "profundo conocimiento y habilidad además de participar activamente en la " "comunidad. La distinción de Oro es la condecoración máxima en esta comunidad" -#: templates/badges.html:63 +#: templates/badges.html:62 msgid "silver badge description" msgstr "" "Obtener una distinción de Plata requiere de paciencia. Si has logrado una, " "quiere decir que haz significativamente aportado a esta comunidad." -#: templates/badges.html:66 +#: templates/badges.html:65 msgid "bronze badge: often given as a special honor" msgstr "" "distinción de bronce: con frecuencia entregada como reconocimiento especial." -#: templates/badges.html:70 +#: templates/badges.html:69 msgid "bronze badge description" msgstr "" "Si eres un usuario activo de esta comunidad, recibirás esta distinción - de " @@ -972,11 +1104,10 @@ msgstr "la respuesta ha sido aceptada como correcta" msgid "views" msgstr "vistas" -#: templates/book.html:125 templates/index.html:69 templates/question.html:115 -#: templates/question.html.py:486 templates/questions.html:84 -#: templates/questions.html.py:156 templates/tags.html:47 -#: templates/unanswered.html:75 templates/unanswered.html.py:109 -#: templates/users_questions.html:52 +#: templates/book.html:125 templates/index.html:69 templates/question.html:499 +#: templates/questions.html:84 templates/questions.html.py:156 +#: templates/tags.html:49 templates/unanswered.html:75 +#: templates/unanswered.html.py:106 templates/users_questions.html:52 msgid "using tags" msgstr "usando etiquetas" @@ -984,7 +1115,7 @@ msgstr "usando etiquetas" msgid "subscribe to book RSS feed" msgstr "suscribirse al RSS del libro" -#: templates/book.html:147 templates/index.html:116 +#: templates/book.html:147 templates/index.html:118 msgid "subscribe to the questions feed" msgstr "suscribirse al agregado de noticias" @@ -1044,10 +1175,6 @@ msgstr "" msgid "What should I avoid in my answers?" msgstr "¿Que debo evitar en mis respuestas?" -#: templates/faq.html:28 templates/faq.html.py:132 -msgid "site title" -msgstr "título del sitio" - #: templates/faq.html:28 msgid "" "is a Q&A site, not a discussion group. Therefore - please avoid having " @@ -1084,75 +1211,118 @@ msgstr "¿Cómo funciona el sistema de reputación?" #: templates/faq.html:41 msgid "Rep system summary" -msgstr "resumen del sistema de reputación" +msgstr "" +"Cuando una pregunta o respuesta es votada positivamente, el usuario que la " +"realizo ganará algunos puntos, que llamamos \"puntos de reputación\". Estos " +"puntos sirven a groso modo para medir la confianza que la comunidad le " +"tiene. Diversas tareas de moderación son gradualmente asignadas a los " +"usuarios basado en estos puntos de reputación." -#: templates/faq.html:59 templates/user_votes.html:14 +#: templates/faq.html:42 +msgid "" +"For example, if you ask an interesting question or give a helpful answer, " +"your input will be upvoted. On the other hand if the answer is misleading - " +"it will be downvoted. Each vote in favor will generate <strong>10</strong> " +"points, each vote against will subtract <strong>2</strong> points. There is " +"a limit of <strong>200</strong> points that can be accumulated per question " +"or answer. The table below explains reputation point requirements for each " +"type of moderation task." +msgstr "" +"Por ejemplo, si haces una pregunta interesante o das una respuesta útil, tu " +"adición será votada positivamente. Por otro lado, si la respuesta es fuera " +"de lugar - será votada negativamente. Cada voto a favor genera <strong>10</" +"strong> puntos, cada voto en contra restará <strong>2</strong> puntos. Hay " +"un limite de <strong>200</strong> puntos que puedes acumular por pregunta o " +"respuesta. La tabla debajo explica los puntos de reputación requeridos para " +"cada tarea de moderación." + +#: templates/faq.html:53 templates/user_votes.html:14 msgid "upvote" msgstr "votar positivo" -#: templates/faq.html:63 +#: templates/faq.html:57 msgid "use tags" msgstr "etiquetas usadas" -#: templates/faq.html:68 +#: templates/faq.html:62 msgid "add comments" msgstr "agregar comentarios" -#: templates/faq.html:72 templates/user_votes.html:16 +#: templates/faq.html:66 templates/user_votes.html:16 msgid "downvote" msgstr "votar negativo" -#: templates/faq.html:75 +#: templates/faq.html:69 msgid "open and close own questions" msgstr "abrir y cerrar sus propias preguntas" -#: templates/faq.html:79 +#: templates/faq.html:73 msgid "retag questions" msgstr "re-etiquetar preguntas" -#: templates/faq.html:83 +#: templates/faq.html:77 msgid "edit community wiki questions" msgstr "editar preguntas de la wiki comunitaria" -#: templates/faq.html:87 +#: templates/faq.html:81 msgid "edit any answer" msgstr "editar cualquier pregunta" -#: templates/faq.html:91 +#: templates/faq.html:85 msgid "open any closed question" msgstr "abrir cualquier pregunta cerrada" -#: templates/faq.html:95 +#: templates/faq.html:89 msgid "delete any comment" msgstr "borrar cualquier comentario" -#: templates/faq.html:99 +#: templates/faq.html:93 msgid "delete any questions and answers and perform other moderation tasks" msgstr "" "borrar cualquier pregunta o respuesta y realizar otras tareas de " "administración." -#: templates/faq.html:106 +#: templates/faq.html:100 msgid "how to validate email title" -msgstr "como validar el título del correo" +msgstr "¿Cómo validar mi correo electrónico?" -#: templates/faq.html:108 +#: templates/faq.html:102 msgid "how to validate email info" -msgstr "como validar la información del correo" +msgstr "" +"<form style='margin:0;padding:0;' action='/email/sendkey/'><p><span class=" +"\"bigger strong\">¿Cómo?</span> Si acabas de asignar o cambiar tu correo " +"electrónico - <strong>verifica tu casilla de mensajes y clickea en el link " +"incluido</strong>. <br/> El link contiene una clave generada especificamente " +"para ti. <button style='display:inline' type='submit'><strong>get a new key</" +"strong></button> y vuelve a revisar tu casilla de mensajes.</p></form><span " +"class=\"bigger strong\">¿Porqué?</span> La validación del email es requerida " +"para estar seguros the que <strong>solo tu puedes enviar mensajes</strong> " +"bajo tu concentimiento y para <strong>minimizar el spam</strong>.<br/> Con " +"tu email podrás <strong>suscribirte a actualizaciones</strong> en las " +"preguntas mas interesantes. También, cuando te registras por primera vez - " +"se crea un imagen personal única de <a href='/" +"faq#gravatar'><strong>gravatar</strong></a>." -#: templates/faq.html:112 +#: templates/faq.html:106 msgid "what is gravatar" -msgstr "qué es gravatar" +msgstr "¿Qué es gravatar?" -#: templates/faq.html:113 +#: templates/faq.html:107 msgid "gravatar faq info" -msgstr "preguntas frecuentes sobre gravatar" +msgstr "" +"<strong>Gravatar</strong> significa <strong>g</strong>lobalmente <strong>r</" +"strong>econocido <strong>avatar</strong> - tu imagen única asociada a tu " +"email. Es simplemente una imagen que se muestra junto con tus mensajes en " +"sitios que soportan gravatar. Por defecto gravatar aparece como un cuadrado " +"rellenado con figuras parecidas a copos de nieve. Puedes <strong>seleccionar " +"tu imagen</strong> en <a href='http://gravatar.com'><strong>gravatar.com</" +"strong></a>" -#: templates/faq.html:116 +#: templates/faq.html:110 msgid "To register, do I need to create new password?" msgstr "¿Para registrarme, debo crearme una cuenta?" -#: templates/faq.html:117 +#: templates/faq.html:111 msgid "" "No, you don't have to. You can login through any service that supports " "OpenID, e.g. Google, Yahoo, AOL, etc." @@ -1160,19 +1330,21 @@ msgstr "" "No tienes porqué. Puedes ingresar usando cualquiera de los servicios que " "soportan OpenID, ej. Google, Yahoo, AOL, MyOpenID, etc." -#: templates/faq.html:118 +#: templates/faq.html:112 msgid "Login now!" msgstr "Ingresa ahora!" -#: templates/faq.html:123 +#: templates/faq.html:117 msgid "Why other people can edit my questions/answers?" msgstr "¿Porqué otras personas pueden editar mis preguntas y respuestas?" -#: templates/faq.html:124 +#: templates/faq.html:118 msgid "Goal of this site is..." -msgstr "El objetivo de este sitio es..." +msgstr "" +"El objetivo de este sitio es generar contenido valioso mediante preguntas y " +"respuestas, de forma colaborativa. " -#: templates/faq.html:124 +#: templates/faq.html:118 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 " @@ -1180,34 +1352,35 @@ msgid "" msgstr "" "Entonces, las preguntas y respuestas pueden ser editadas como wiki por " "usuarios con experiencia, y esto mejora la calidad general del conocimiento " -"guardado." +"acumulado." -#: templates/faq.html:125 +#: templates/faq.html:119 msgid "If this approach is not for you, we respect your choice." msgstr "" "Si esta forma de funcionamiento no es de tu agrado, respetamos tu elección." -#: templates/faq.html:129 +#: templates/faq.html:123 msgid "Still have questions?" msgstr "¿Aún tienes preguntas?" -#: templates/faq.html:130 +#: templates/faq.html:124 msgid "Please ask your question, help make our community better!" msgstr "Por favor haz tu pregunta, ¡ayudanos a mejorar nuestra comunidad!" -#: templates/faq.html:132 templates/header.html:29 templates/header.html.py:60 +#: templates/faq.html:126 templates/header.html:29 templates/header.html.py:63 msgid "questions" msgstr "preguntas" -#: templates/faq.html:132 templates/index.html:121 +#: templates/faq.html:126 templates/index.html:123 msgid "." msgstr "." #: templates/footer.html:7 templates/header.html:14 templates/index.html:83 msgid "about" -msgstr "acerca de" +msgstr "acerca de nosotros" #: templates/footer.html:8 templates/header.html:15 templates/index.html:84 +#: templates/question_edit_tips.html:16 msgid "faq" msgstr "preguntas frecuentes" @@ -1241,29 +1414,29 @@ msgstr "entrar" #: templates/header.html:23 msgid "back to home page" -msgstr "volver al inicio" +msgstr "volver página principal" -#: templates/header.html:31 templates/header.html.py:62 +#: templates/header.html:31 templates/header.html.py:65 msgid "users" msgstr "usuarios" -#: templates/header.html:32 +#: templates/header.html:33 msgid "books" msgstr "libros" -#: templates/header.html:34 +#: templates/header.html:36 msgid "unanswered questions" msgstr "sin respuesta" -#: templates/header.html:38 +#: templates/header.html:40 msgid "my profile" msgstr "mi perfil" -#: templates/header.html:42 +#: templates/header.html:44 msgid "ask a question" msgstr "hacer una pregunta" -#: templates/header.html:57 +#: templates/header.html:59 msgid "search" msgstr "buscar" @@ -1286,7 +1459,7 @@ msgstr "más nuevas" #: templates/index.html:25 templates/questions.html:27 msgid "hottest questions" -msgstr "preguntas más calientes" +msgstr "preguntas calientes" #: templates/index.html:25 templates/questions.html:27 msgid "hottest" @@ -1309,11 +1482,10 @@ msgstr "todas las preguntas" msgid "answers" msgstr "respuestas" -#: templates/index.html:69 templates/question.html:115 -#: templates/question.html.py:486 templates/questions.html:84 -#: templates/questions.html.py:156 templates/tags.html:47 -#: templates/unanswered.html:75 templates/unanswered.html.py:109 -#: templates/users_questions.html:52 +#: templates/index.html:69 templates/question.html:499 +#: templates/questions.html:84 templates/questions.html.py:156 +#: templates/tags.html:49 templates/unanswered.html:75 +#: templates/unanswered.html.py:106 templates/users_questions.html:52 msgid "see questions tagged" msgstr "ver preguntas etiquetadas" @@ -1325,48 +1497,48 @@ msgstr "bienvenido a sitio" msgid "Recent tags" msgstr "Etiquetas recientes" -#: templates/index.html:94 +#: templates/index.html:94 templates/question.html:125 #, python-format msgid "see questions tagged '%(tagname)s'" msgstr "ver preguntas etiquetadas '%(tagname)s'" -#: templates/index.html:97 templates/index.html.py:121 +#: templates/index.html:97 templates/index.html.py:123 msgid "popular tags" msgstr "etiquetas populares" -#: templates/index.html:101 +#: templates/index.html:102 msgid "Recent awards" msgstr "Reconocimientos recientes" -#: templates/index.html:107 +#: templates/index.html:108 msgid "given to" msgstr "dados a" -#: templates/index.html:112 +#: templates/index.html:113 msgid "all awards" msgstr "todos los reconocimientos" -#: templates/index.html:116 +#: templates/index.html:118 msgid "subscribe to last 30 questions by RSS" msgstr "suscribirse a las últimas 30 preguntas por RSS" -#: templates/index.html:121 +#: templates/index.html:123 msgid "Still looking for more? See" msgstr "¿Aún sigues buscando más? Ver" -#: templates/index.html:121 +#: templates/index.html:123 msgid "complete list of questions" msgstr "lista completa de preguntas" -#: templates/index.html:121 +#: templates/index.html:123 msgid "or" msgstr "ó" -#: templates/index.html:121 +#: templates/index.html:123 msgid "Please help us answer" msgstr "Ayudanos a responder" -#: templates/index.html:121 +#: templates/index.html:123 msgid "list of unanswered questions" msgstr "lista de preguntas sin respuesta" @@ -1412,7 +1584,7 @@ msgstr "próxima página" #: templates/privacy.html:6 templates/privacy.html.py:11 msgid "Privacy policy" -msgstr "Código de Privacidad" +msgstr "Privacidad" #: templates/privacy.html:15 msgid "general message about privacy" @@ -1454,75 +1626,77 @@ msgstr "Cambios de Códigos" msgid "how privacy policies can be changed" msgstr "como pueden ser cambiados los códigos de privacidad" -#: templates/question.html:69 templates/question.html.py:81 +#: templates/question.html:72 templates/question.html.py:73 +#: templates/question.html:85 templates/question.html.py:87 msgid "i like this post (click again to cancel)" msgstr "Me gusta esta entrada (clickear devuelta para cancelar)" -#: templates/question.html:71 templates/question.html.py:83 -#: templates/question.html:276 +#: templates/question.html:75 templates/question.html.py:89 +#: templates/question.html:289 msgid "current number of votes" msgstr "número actual de votos" -#: templates/question.html:76 templates/question.html.py:87 +#: templates/question.html:80 templates/question.html.py:81 +#: templates/question.html:94 templates/question.html.py:95 msgid "i dont like this post (click again to cancel)" msgstr "No me gusta esta entrada (clickear devuelta para cancelar)" -#: templates/question.html:93 +#: templates/question.html:100 templates/question.html.py:101 msgid "mark this question as favorite (click again to cancel)" msgstr "marcar esta pregunta como favorita (clickear devuelta para cancelar)" -#: templates/question.html:99 +#: templates/question.html:107 templates/question.html.py:108 msgid "remove favorite mark from this question (click again to restore mark)" msgstr "" "remover marca de favorito a esta pregunta (clickear devuelta para volver a " "marcar)" -#: templates/question.html:124 templates/question.html.py:307 +#: templates/question.html:134 templates/question.html.py:322 #: templates/revisions_answer.html:53 templates/revisions_question.html:53 msgid "edit" msgstr "editar" -#: templates/question.html:128 templates/question.html.py:317 +#: templates/question.html:138 templates/question.html.py:332 msgid "delete" msgstr "borrar" -#: templates/question.html:133 +#: templates/question.html:143 msgid "reopen" msgstr "re-abrir" -#: templates/question.html:138 +#: templates/question.html:148 msgid "close" msgstr "cerrar" -#: templates/question.html:144 templates/question.html.py:330 +#: templates/question.html:154 templates/question.html.py:345 msgid "" "report as offensive (i.e containing spam, advertising, malicious text, etc.)" msgstr "" "reportar como ofensivo (ej. contiene spam, publicidad, texto malicioso, etc.)" -#: templates/question.html:145 templates/question.html.py:331 +#: templates/question.html:155 templates/question.html.py:346 msgid "flag offensive" msgstr "marcar como ofensivo" -#: templates/question.html:157 templates/question.html.py:340 +#: templates/question.html:167 templates/question.html.py:355 #: templates/revisions_answer.html:65 templates/revisions_question.html:65 msgid "updated" msgstr "actualizado" -#: templates/question.html:206 templates/question.html.py:387 +#: templates/question.html:216 templates/question.html.py:402 #: templates/revisions_answer.html:63 templates/revisions_question.html:63 msgid "asked" msgstr "preguntado" -#: templates/question.html:236 templates/question.html.py:414 +#: templates/question.html:246 templates/question.html.py:429 msgid "comments" msgstr "comentarios" -#: templates/question.html:237 templates/question.html.py:415 +#: templates/question.html:247 templates/question.html.py:430 msgid "add comment" msgstr "agregar comentario" -#: templates/question.html:250 +#: templates/question.html:260 #, python-format msgid "" "The question has been closed for the following reason \"%(question." @@ -1531,113 +1705,115 @@ msgstr "" "La pregunta ha sido cerrada por el siguiente motivo \"%(question." "get_close_reason_display)s\" por" -#: templates/question.html:252 +#: templates/question.html:262 #, python-format msgid "close date %(question.closed_at)s" msgstr "fecha de cerrada %(question.closed_at)s" -#: templates/question.html:259 templates/user_stats.html:28 +#: templates/question.html:269 templates/user_stats.html:28 msgid "Answers" msgstr "Respuestas" -#: templates/question.html:261 +#: templates/question.html:271 msgid "oldest answers will be shown first" msgstr "la respuesta mas vieja será mostrada primero" -#: templates/question.html:261 +#: templates/question.html:271 msgid "oldest answers" msgstr "pregunta más vieja" -#: templates/question.html:262 +#: templates/question.html:272 msgid "newest answers will be shown first" msgstr "preguntas más nuevas serán mostradas primero" -#: templates/question.html:262 +#: templates/question.html:272 msgid "newest answers" msgstr "más nuevas" -#: templates/question.html:263 +#: templates/question.html:273 msgid "most voted answers will be shown first" msgstr "las preguntas más votadas serán mostradas primero" -#: templates/question.html:263 +#: templates/question.html:273 msgid "popular answers" -msgstr "respuestas populares serán mostradas primero" +msgstr "respuestas populares" -#: templates/question.html:275 +#: templates/question.html:287 templates/question.html.py:288 msgid "i like this answer (click again to cancel)" msgstr "me gusta esta respuesta (clickear devuelta para cancelar)" -#: templates/question.html:281 +#: templates/question.html:294 templates/question.html.py:295 msgid "i dont like this answer (click again to cancel)" msgstr "no me gusta esta respuesta (clickear devuelta para cancelar)" -#: templates/question.html:287 +#: templates/question.html:300 templates/question.html.py:301 msgid "mark this answer as favorite (click again to undo)" msgstr "marcar esta respuesta como favorita (clickear devuelta para deshacer)" -#: templates/question.html:292 +#: templates/question.html:306 templates/question.html.py:307 msgid "the author of the question has selected this answer as correct" msgstr "el autor de esta pregunta ha seleccionado esta respuesta como correcta" -#: templates/question.html:314 +#: templates/question.html:329 msgid "undelete" msgstr "deshacer eliminar" -#: templates/question.html:324 +#: templates/question.html:339 msgid "answer permanent link" msgstr "enlace permanente a respuesta" -#: templates/question.html:325 +#: templates/question.html:340 msgid "permanent link" msgstr "enlace permanente" -#: templates/question.html:438 +#: templates/question.html:453 msgid "Your answer" msgstr "Tu respuesta" -#: templates/question.html:441 +#: templates/question.html:456 msgid "you can answer anonymously and then login" -msgstr "" +msgstr "puedes responder de forma anónima y luego ingresar" -#: templates/question.html:465 +#: templates/question.html:479 msgid "Answer the question" msgstr "Responde la pregunta" -#: templates/question.html:467 +#: templates/question.html:481 msgid "Notify me daily if there are any new answers." -msgstr "Notificarme diariamente si hay nuevas respuestas" +msgstr "Notificarme diariamente si hay nuevas respuestas." -#: templates/question.html:469 +#: templates/question.html:483 msgid "once you sign in you will be able to subscribe for any updates here" -msgstr "Una vez que inicie sesión se podrá suscribir a cualquier actualización aquí" +msgstr "" +"una vez que hayas ingresado podrás suscribirte a cualquiera de las " +"actualizaciones aquí." -#: templates/question.html:481 +#: templates/question.html:494 msgid "Question tags" -msgstr "Etiquetas de la pregunta" +msgstr "Tags de la pregunta" -#: templates/question.html:491 +#: templates/question.html:504 msgid "question asked" msgstr "pregunta preguntada" -#: templates/question.html:491 templates/question.html.py:497 +#: templates/question.html:504 templates/question.html.py:510 #: templates/user_info.html:51 msgid "ago" -msgstr "atrás" +msgstr " atras" -#: templates/question.html:494 +#: templates/question.html:507 msgid "question was seen" msgstr "la pregunta fue vista" -#: templates/question.html:494 +#: templates/question.html:507 msgid "times" msgstr "veces" -#: templates/question.html:497 +#: templates/question.html:510 msgid "last updated" msgstr "última vez actualizada" -#: templates/question.html:502 +#: templates/question.html:515 msgid "Related questions" msgstr "Preguntas relacionadas" @@ -1665,15 +1841,15 @@ msgstr "Cambiar etiquetas" msgid "up to 5 tags, less than 20 characters each" msgstr "hasta 5 etiquetas, menos de 20 caracteres cada una" -#: templates/question_retag.html:86 +#: templates/question_retag.html:82 msgid "Why use and modify tags?" msgstr "¿Porqué usar y modificar etiquetas?" -#: templates/question_retag.html:89 +#: templates/question_retag.html:85 msgid "tags help us keep Questions organized" -msgstr "las etiquetas nos ayudan a mantener las preguntar organizadas" +msgstr "las etiquetas nos permiten mantener las Preguntas organizadas" -#: templates/question_retag.html:95 +#: templates/question_retag.html:91 msgid "tag editors receive special awards from the community" msgstr "" "los editores de etiquetas reciben distinciones especiales de la comunidad" @@ -1712,15 +1888,17 @@ msgid_plural "" "\n" "\t\t\thave total %(q_num)s questions tagged %(tagname)s\n" "\t\t\t" -msgstr[0] "\n" +msgstr[0] "" +"\n" "\t\t\ttiene un total de %(q_num)s preguntas etiquetadas con %(tagname)s\n" "\t\t\t" -msgstr[1] "\n" +msgstr[1] "" +"\n" "\t\t\ttiene un total de %(q_num)s preguntas etiquetadas con %(tagname)s\n" "\t\t\t" #: templates/questions.html:116 -#, fuzzy, python-format +#, python-format msgid "" "\n" "\t\t\t\thave total %(q_num)s questions containing %(searchtitle)s\n" @@ -1780,7 +1958,7 @@ msgstr "Las preguntas son ordenadas por el <strong>número de votos</strong>." msgid "Most voted questions are shown first." msgstr "Las preguntas más votadas son mostradas primero." -#: templates/questions.html:153 templates/unanswered.html:105 +#: templates/questions.html:153 templates/unanswered.html:102 msgid "Related tags" msgstr "Etiquetas relacionadas" @@ -1817,35 +1995,35 @@ msgstr "Re-abrir esta pregunta" msgid "Revision history" msgstr "Historial de revisiones" -#: templates/tags.html:6 templates/tags.html.py:29 +#: templates/tags.html:6 templates/tags.html.py:30 msgid "Tag list" msgstr "Lista de etiquetas" -#: templates/tags.html:31 +#: templates/tags.html:32 msgid "sorted alphabetically" msgstr "ordenar alfabéticamente" -#: templates/tags.html:31 +#: templates/tags.html:32 msgid "by name" msgstr "por nombre" -#: templates/tags.html:32 +#: templates/tags.html:33 msgid "sorted by frequency of tag use" msgstr "ordenar por frecuencia de uso de la etiqueta" -#: templates/tags.html:32 +#: templates/tags.html:33 msgid "by popularity" msgstr "por popularidad" -#: templates/tags.html:38 +#: templates/tags.html:39 msgid "All tags matching query" msgstr "Todas las etiquetas que coincidan con la busqueda" -#: templates/tags.html:38 +#: templates/tags.html:39 msgid "all tags - make this empty in english" msgstr "todas las tags" -#: templates/tags.html:41 +#: templates/tags.html:42 msgid "Nothing found" msgstr "Nada encontrado" @@ -1860,10 +2038,6 @@ msgstr "" "<div class=\"questions-count\">%(num_q)s</div> preguntas <strong>sin " "respuesta</strong> " -#: templates/unanswered.html:99 -msgid "Have a total of" -msgstr "Hay un total de" - #: templates/user_edit.html:6 msgid "Edit user profile" msgstr "Editar perfil de usuario" @@ -1890,7 +2064,7 @@ msgstr "Actualización" #: templates/user_info.html:34 msgid "update profile" -msgstr "" +msgstr "actualizar perfil de usuario" #: templates/user_info.html:40 msgid "real name" @@ -1930,64 +2104,63 @@ msgstr "votos restantes" #: templates/user_preferences.html:10 msgid "Connect with Twitter" -msgstr "" +msgstr "Conectar con Twitter" -#: templates/user_preferences.html:12 +#: templates/user_preferences.html:13 msgid "Twitter account name:" msgstr "Nombre de usuario en Twitter:" -#: templates/user_preferences.html:14 +#: templates/user_preferences.html:15 msgid "Twitter password:" msgstr "Contraseña de Twitter:" -#: templates/user_preferences.html:16 +#: templates/user_preferences.html:17 msgid "Send my Questions to Twitter" msgstr "Enviar mis preguntas a Twitter" -#: templates/user_preferences.html:17 +#: templates/user_preferences.html:18 msgid "Send my Answers to Twitter" msgstr "Enviar mis respuestas a Twitter" -#: templates/user_preferences.html:18 +#: templates/user_preferences.html:19 msgid "Save" msgstr "Guardar" -#: templates/user_stats.html:15 +#: templates/user_stats.html:16 msgid "User questions" msgstr "Preguntas del usuario" -#: templates/user_stats.html:37 +#: templates/user_stats.html:38 #, python-format msgid "the answer has been voted for %(vote_count)s times" msgstr "la respuesta ha sido votada %(vote_count)s veces" -#: templates/user_stats.html:37 +#: templates/user_stats.html:38 msgid "this answer has been selected as correct" msgstr "esta respuesta ha sido seleccionada como correcta" -#: templates/user_stats.html:43 +#: templates/user_stats.html:46 #, python-format -msgid "the answer has been commented %(answered_question.comment_count)s times" -msgstr "" -"la respuesta ha sido comentada %(answered_question.comment_count)s veces" +msgid "the answer has been commented %(comment_count)s times" +msgstr "la respuesta ha sido comentada %(comment_count)s veces" -#: templates/user_stats.html:56 +#: templates/user_stats.html:60 msgid "votes total" msgstr "votos totales" -#: templates/user_stats.html:65 +#: templates/user_stats.html:69 msgid "user has voted up this many times" msgstr "el usuario ha votado positivo esta cantidad de veces" -#: templates/user_stats.html:70 +#: templates/user_stats.html:74 msgid "user voted down this many times" msgstr "el usuario voto negativo esta cantidad de veces" -#: templates/user_stats.html:84 +#: templates/user_stats.html:87 msgid "Tags" msgstr "Etiquetas" -#: templates/user_stats.html:94 +#: templates/user_stats.html:97 #, python-format msgid "see other questions tagged '%(tag)s' " msgstr "ver otras preguntas etiqueteadas '%(tag)s'" @@ -2051,9 +2224,9 @@ msgid "Change email" msgstr "Cambiar dirección email" #: templates/authopenid/changeemail.html:10 -#, fuzzy, python-format +#, python-format msgid "change %(email)s info" -msgstr "Cambiar información del correo electrónico " +msgstr "Cambiar información del correo electrónico %(email)s" #: templates/authopenid/changeemail.html:13 #: templates/authopenid/changeopenid.html:14 @@ -2064,10 +2237,10 @@ msgstr "Por favor corrija los errores debajo: " #: templates/authopenid/changeemail.html:30 msgid "Your new Email" -msgstr "" +msgstr "Tu nuevo Email" #: templates/authopenid/changeemail.html:31 -#: templates/authopenid/signin.html:138 +#: templates/authopenid/signin.html:136 msgid "Password" msgstr "Contraseña" @@ -2079,7 +2252,7 @@ msgstr "Cambiar dirección email" #: templates/authopenid/changeemail.html:45 #, python-format msgid "validate %(email)s info" -msgstr "" +msgstr "validar información de %(email)s " #: templates/authopenid/changeemail.html:50 msgid "Email not changed" @@ -2088,7 +2261,7 @@ msgstr "Email no modificado." #: templates/authopenid/changeemail.html:53 #, python-format msgid "old %(email)s kept" -msgstr "" +msgstr "se ha conservado el viejo email %(email)s " #: templates/authopenid/changeemail.html:58 msgid "Email changed" @@ -2097,7 +2270,7 @@ msgstr "Email modificado." #: templates/authopenid/changeemail.html:61 #, python-format msgid "your current %(email)s can be used for this" -msgstr "" +msgstr "tu email actual %(email)s puede ser usado para esto" #: templates/authopenid/changeemail.html:66 msgid "Email verified" @@ -2114,7 +2287,7 @@ msgstr "llave de correo no enviada" #: templates/authopenid/changeemail.html:77 #, python-format msgid "email key not sent %(email)s change email here %(change_link)s" -msgstr "" +msgstr "email no enviado %(email)s cambiar email aquí %(change_link)s" #: templates/authopenid/changeopenid.html:8 msgid "Account: change OpenID URL" @@ -2168,24 +2341,24 @@ msgstr "Vincular tu OpenID con tu cuenta en este sitio" #: templates/authopenid/complete.html:12 #, python-format msgid "register new %(provider)s account info" -msgstr "" +msgstr "Registrar una nueva cuenta %(provider)s." #: templates/authopenid/complete.html:14 msgid "This account already exists, please use another." msgstr "Esta cuenta ya existe, por favor usar otra." #: templates/authopenid/complete.html:19 templates/authopenid/complete.html:32 -#: templates/authopenid/signin.html:121 +#: templates/authopenid/signin.html:120 msgid "Sorry, looks like we have some errors:" msgstr "Ups, parece que hay errores:" #: templates/authopenid/complete.html:47 msgid "Screen name label" -msgstr "" +msgstr "Nombre de Usuario" #: templates/authopenid/complete.html:48 msgid "Email address label" -msgstr "su email (correo electrónico)" +msgstr "Su email (correo electrónico)" #: templates/authopenid/complete.html:49 msgid "create account" @@ -2207,7 +2380,7 @@ msgstr "contraseña" msgid "Register" msgstr "Registrarse" -#: templates/authopenid/complete.html:62 templates/authopenid/signin.html:140 +#: templates/authopenid/complete.html:62 templates/authopenid/signin.html:138 msgid "Forgot your password?" msgstr "¿Olvidaste tu contraseña?" @@ -2217,12 +2390,12 @@ msgstr "" #: templates/authopenid/confirm_email.txt:4 msgid "Your account details are:" -msgstr "Los detalles de su cuenta son:" +msgstr "" #: templates/authopenid/confirm_email.txt:6 #: templates/authopenid/sendpw_email.txt:7 msgid "Username:" -msgstr "Nombre de usuario" +msgstr "Nombre de usuario:" #: templates/authopenid/confirm_email.txt:7 #: templates/authopenid/delete.html:20 @@ -2231,7 +2404,7 @@ msgstr "Contraseña" #: templates/authopenid/confirm_email.txt:9 msgid "Please sign in here:" -msgstr "Por favor inicie sesión aquí:" +msgstr "" #: templates/authopenid/confirm_email.txt:12 #: templates/authopenid/email_validation.txt:14 @@ -2250,7 +2423,7 @@ msgid "" "Note: After deleting your account, anyone will be able to register this " "username." msgstr "" -"Nota: Luego de borrar tu cuenta, cualquiera podrá registrarse con este " +"Nota: Luego de borrar tu cuenta, cualquiera va a poder registrarse con este " "nombre de usuario." #: templates/authopenid/delete.html:17 @@ -2279,11 +2452,11 @@ msgstr "" #: templates/authopenid/email_validation.txt:4 msgid "To make use of the Forum, please follow the link below:" -msgstr "Para usar el Foro, siga el siguiente enlace:" +msgstr "" #: templates/authopenid/email_validation.txt:8 msgid "Following the link above will help us verify your email address." -msgstr "El siguiente enlace nos ayudará a verificar su correo electrónico." +msgstr "" #: templates/authopenid/email_validation.txt:10 msgid "" @@ -2340,8 +2513,9 @@ msgid "Your new account details are:" msgstr "" #: templates/authopenid/sendpw_email.txt:8 +#, fuzzy msgid "New password:" -msgstr "Nueva contraseña" +msgstr "Nueva contraseña:" #: templates/authopenid/sendpw_email.txt:10 msgid "To confirm that you wanted to reset your password please visit:" @@ -2383,6 +2557,10 @@ msgid "" "log in\n" " " msgstr "" +"\n" +" Tu respuesta a %(title)s %(summary)s será publicada una vez " +"que ingreses \n" +" " #: templates/authopenid/signin.html:35 #, python-format @@ -2391,73 +2569,76 @@ msgid "" " %(title)s %(summary)s will be posted once you log in\n" " " msgstr "" +"Tu pregunta \n" +" %(title)s %(summary)s será publicada una vez que ingreses\n" +" " #: templates/authopenid/signin.html:40 msgid "Click to sign in through any of these services." -msgstr "" +msgstr "Clickea para entrar por cualquiera de estos servicios." #: templates/authopenid/signin.html:103 msgid "Enter your <span id=\"enter_your_what\">Provider user name</span>" -msgstr "" +msgstr "Ingresa tu <span id=\"enter_your_what\">nombre de usuario</span>" #: templates/authopenid/signin.html:110 msgid "" "Enter your <a class=\"openid_logo\" href=\"http://openid.net\">OpenID</a> " "web address" msgstr "" +"Ingresa tu dirección (URL) de <a class=\"openid_logo\" href=\"http://openid." +"net\">OpenID</a>" -#: templates/authopenid/signin.html:112 templates/authopenid/signin.html:139 +#: templates/authopenid/signin.html:112 templates/authopenid/signin.html:137 msgid "Login" msgstr "Ingresar" #: templates/authopenid/signin.html:116 msgid "we support two login modes" -msgstr "" -"Puedes ingresar por cualquiera de los siguientes servicios, o " -"tradicionalmente- usando nombre de usuario y contraseña locales" +msgstr "soportamos dos tipos de ingreso" -#: templates/authopenid/signin.html:136 +#: templates/authopenid/signin.html:134 msgid "Use login name and password" msgstr "Nombre de usuario y contraseña" -#: templates/authopenid/signin.html:137 +#: templates/authopenid/signin.html:135 msgid "Login name" msgstr "Nombre de usuario" -#: templates/authopenid/signin.html:141 +#: templates/authopenid/signin.html:139 msgid "Create new account" msgstr "Crear cuenta nueva" -#: templates/authopenid/signin.html:150 +#: templates/authopenid/signin.html:148 msgid "Why use OpenID?" msgstr "¿Porqué usar OpenID?" -#: templates/authopenid/signin.html:154 +#: templates/authopenid/signin.html:151 msgid "with openid it is easier" msgstr "Con OpenID no necesitas crear un nuevo nombre de usuario y contraseña." -#: templates/authopenid/signin.html:157 +#: templates/authopenid/signin.html:154 msgid "reuse openid" msgstr "" "Puedes de forma segura re-usar el mismo nombre de usuario para todos los " "sitios que acepten OpenID." -#: templates/authopenid/signin.html:160 +#: templates/authopenid/signin.html:157 msgid "openid is widely adopted" msgstr "" "OpenID es extensamente usado. Hay más de 160,000,000 cuentas de OpenID en " "uso en el mundo. Mas de 10,000 sitios aceptan OpenID." -#: templates/authopenid/signin.html:163 +#: templates/authopenid/signin.html:160 msgid "openid is supported open standard" msgstr "" "OpenID es basado en un standard abierto, apoyado por muchas organizaciones." -#: templates/authopenid/signin.html:167 +#: templates/authopenid/signin.html:165 msgid "Find out more" msgstr "Averigua más" -#: templates/authopenid/signin.html:168 +#: templates/authopenid/signin.html:166 msgid "Get OpenID" msgstr "Adquiere una OpenID" @@ -2493,181 +2674,22 @@ msgstr "elije un nombre de usuario" msgid "back to login" msgstr "volver al ingreso de usuario" -#: templates/authopenid/signup.html:48 +#: templates/authopenid/signup.html:46 msgid "Register with your OpenID" msgstr "Registrate con tu OpenID" -#: templates/authopenid/signup.html:51 +#: templates/authopenid/signup.html:49 msgid "Login with your OpenID" msgstr "Ingresar con tu OpenID" -#~ msgid "site slogan" -#~ msgstr " slogan del sitio" +#~ msgid "site title" +#~ msgstr "Preguntalo.com.uy" -#~ msgid "meta site content" -#~ msgstr "meta descripción" +#~ msgid "Have a total of" +#~ msgstr "Hay un total de" -#~ msgid "copyright message" -#~ msgstr "mensaje de copyright" +#~ msgid "/account/" +#~ msgstr "/cuenta/" -#~ msgid "" -#~ "please use space to separate tags (this enables autocomplete feature)" -#~ msgstr "" -#~ "por favor utilice espacio para separar las etiquetas (esto habilitael " -#~ "auto-completado)" - -#~ msgid "Use" -#~ msgstr "Usar" - -#~ msgid "learn more about OpenID" -#~ msgstr "aprender mas sobre OpenID" - -#~ msgid "Get your own " -#~ msgstr "Obtiene tu propio " - -#~ msgid "Email: (won't be shown to anyone)" -#~ msgstr "Email: (no será mostrado a nadie)" - -#, fuzzy -#~ msgid "Congratulations! You have new badges: " -#~ msgstr "felicitaciones, la comunidad te ha otorgado una distinción" - -#, fuzzy -#~ msgid "go to see" -#~ msgstr "OK para cerrar" - -#~ msgid "congratulations, community gave you a badge" -#~ msgstr "felicitaciones, la comunidad te ha otorgado una distinción" - -#~ msgid "see" -#~ msgstr "ver" - -#~ msgid "profile" -#~ msgstr "perfil" - -#~ msgid "" -#~ "Anyone can ask questions and give answers, points are not necessary for " -#~ "that." -#~ msgstr "" -#~ "Cualquier usuario puede hacer preguntas y dar respuestas, no es necesario " -#~ "tener reputación para ello." - -#~ msgid "" -#~ "As we've said before, users help running this site. Point system helps " -#~ "select users who can administer this community." -#~ msgstr "" -#~ "Como dijimos antes, los usuarios ayudan a crear este sitio. El sistema de " -#~ "reputación permite seleccionar usuarios que pueden moderar esta comunidad." - -#~ msgid "" -#~ "Reputation points roughly measure how community trusts you. These points " -#~ "are given to you directly by other members of the community." -#~ msgstr "" -#~ "Los puntos de reputación miden a groso modo que tan respetado eres en la " -#~ "comunidad. Los puntos son dados a ti directamente por otros miembros de " -#~ "la comunidad" - -#~ msgid "" -#~ "For example, if you ask an interesting question or give a helpful answer, " -#~ "your input will be upvoted and you will gain more trust in the community." -#~ msgstr "" -#~ "Por ejemplo, si haces una pregunta interesante, o das una respuesta " -#~ "valiosa, tu entrada va a ser votada positivamente y tu ganarás confianza " -#~ "en la comunidad." - -#~ msgid "" -#~ "If on the other hand someone gives a misleading answer, the answer will " -#~ "be voted down and he/she loses some points." -#~ msgstr "" -#~ "Si por el contrario, alguien da una respuesta que no corresponde, la " -#~ "respuesta será votada negativamente y el usuario perderá puntos." - -#~ msgid "" -#~ "Each vote in favor will generate <strong>10</strong> points, each vote " -#~ "against will subtract <strong>2</strong> points." -#~ msgstr "" -#~ "Cada voto a favor generará <strong>10</strong> puntos, cada voto negativo " -#~ "restará <strong>2</strong> puntos." - -#~ msgid "" -#~ "Through the votes of other people you can accumulate a maximum of " -#~ "<strong>200</strong> points." -#~ msgstr "" -#~ "A través del voto de otras personas puedes acumular un máximo de " -#~ "<strong>200</strong> puntos." - -#~ msgid "After accumulating certain number of points, you can do more:" -#~ msgstr "" -#~ "Luego de haber acumulado cierta cantidad de puntos, puedes hacer más:" - -#~ msgid "meta site keywords, comma separated" -#~ msgstr "palabras claves" - -#~ msgid "what is this website" -#~ msgstr "que es este sitio" - -#~ msgid "what can one do on this website" -#~ msgstr "que puede uno hacer en este sitio" - -#~ msgid "Login to answer" -#~ msgstr "Ingresa para responder" - -#~ msgid "Account: change email" -#~ msgstr "Cuenta: cambiar el email" - -#~ msgid "" -#~ "This is where you can change the email address associated with your " -#~ "account. Please keep this email address up to date so we can send you a " -#~ "password-reset email if you request one." -#~ msgstr "" -#~ "Aquí es donde puedes cambiar el email asociado a tu cuenta de usuario.Por " -#~ "favor manten esta dirección de correo al día de forma que podamos " -#~ "mandarte un cambio de contraseña si tu así lo requieres." - -#~ msgid "Email" -#~ msgstr "Email" - -#~ msgid "" -#~ "Your OpenID is accepted. Please complete this to finish registration." -#~ msgstr "" -#~ "Tu OpenID es aceptada. Por favor completa lo siguiente para finalizar el " -#~ "registro." - -#~ msgid "New account" -#~ msgstr "Nueva cuenta" - -#~ msgid "User name (<i>will be shown to others, cannot be modified</i>)" -#~ msgstr "" -#~ "Nombre de usuario (<i>será mostrado a otros, no puede ser modificado</i>)" - -#~ msgid "Email (<i>not shared with anyone</i>)" -#~ msgstr "Email (<i>no será compartido con nadie</i>)" - -#~ msgid "select openid provider" -#~ msgstr "1) Selecciona tu proveedor de OpenID" - -#~ msgid "verify openid link and login" -#~ msgstr "" -#~ "2) Varifica la URL de tu OpenID (escribe tu nombre de usuario donde dice " -#~ "{nombre de usuario} si lo ves) y luego clickea 'ingresar'" - -#~ msgid "Revise tags" -#~ msgstr "Revisar etiquetas" - -#~ msgid "tags are requried" -#~ msgstr "las etiquetas son requeridas" - -#~ msgid "Change now" -#~ msgstr "Cambiar ahora" - -#~ msgid "number of <strong>unanswered</strong> questions" -#~ msgstr "número de respuestas <strong>sin responder</strong>" - -# -#~ msgid "editing tips" -#~ msgstr "Tips" - -#~ msgid "Newest questions shown first." -#~ msgstr "" -#~ "Questions are sorted by <strong>entry date</strong>.Newest questions " -#~ "shown first." +#~ msgid "content/" +#~ msgstr "contenido/" diff --git a/settings_local.py b/settings_local.py deleted file mode 100644 index c0483ffc..00000000 --- a/settings_local.py +++ /dev/null @@ -1,47 +0,0 @@ -# encoding:utf-8 -import os.path - -SITE_SRC_ROOT = os.path.dirname(__file__) -LOG_FILENAME = 'django.lanai.log' - -#for logging -import logging -logging.basicConfig(filename=os.path.join(SITE_SRC_ROOT, 'log', LOG_FILENAME), level=logging.DEBUG,) - -DATABASE_NAME = 'cnprog.sqlite3' # Or path to database file if using sqlite3. -DATABASE_USER = '' # Not used with sqlite3. -DATABASE_PASSWORD = '' # Not used with sqlite3. -DATABASE_ENGINE = 'sqlite3' #mysql, etc - -#Moved from settings.py for better organization. (please check it up to clean up settings.py) - -#email server settings -SERVER_EMAIL = '' -DEFAULT_FROM_EMAIL = 'team@cnprog.com' -EMAIL_HOST_USER = '' -EMAIL_HOST_PASSWORD = '' -EMAIL_SUBJECT_PREFIX = '[cnprog.com]' -EMAIL_HOST='smtp.gmail.com' -EMAIL_PORT='587' -EMAIL_USE_TLS=True - -#LOCALIZATIONS -TIME_ZONE = 'Asia/Chongqing Asia/Chungking' -# LANGUAGE_CODE = 'en-us' - -#OTHER SETTINGS -APP_TITLE = u'CNProg.com 程序员问答社区' -APP_KEYWORDS = u'技术问答社区,中国程序员,编程技术社区,程序员社区,程序员论坛,程序员wiki,程序员博客' -APP_DESCRIPTION = u'中国程序员的编程技术问答社区。我们做专业的、可协作编辑的技术问答社区。' -APP_INTRO = u' <p>CNProg是一个<strong>面向程序员</strong>的可协作编辑的<strong>开放源代码问答社区</strong>。</p><p> 您可以在这里提问各类<strong>程序技术问题</strong> - 问题不分语言和平台。 同时也希望您对力所能及的问题,给予您的宝贵答案。</p>' -APP_COPYRIGHT = 'Copyright CNPROG.COM 2009' - -USE_I18N = True -LANGUAGE_CODE = 'en' -EMAIL_VALIDATION = 'off' -MIN_USERNAME_LENGTH = 1 -EMAIL_UNIQUE = False -APP_URL = 'http://server.com' #used by email notif system and RSS -GOOGLE_SITEMAP_CODE = '55uGNnQVJW8p1bbXeF/Xbh9I7nZBM/wLhRz6N/I1kkA=' -GOOGLE_ANALYTICS_KEY = '' - diff --git a/settings_local.py.dist b/settings_local.py.dist index d6273070..48d7b567 100644 --- a/settings_local.py.dist +++ b/settings_local.py.dist @@ -44,4 +44,4 @@ EMAIL_UNIQUE = False APP_URL = 'http://server.com' #used by email notif system and RSS GOOGLE_SITEMAP_CODE = '55uGNnQVJW8p1bbXeF/Xbh9I7nZBM/wLhRz6N/I1kkA=' GOOGLE_ANALYTICS_KEY = '' - +BOOKS_ON = True diff --git a/templates/404.html b/templates/404.html index 7090156b..2fa38f99 100644 --- a/templates/404.html +++ b/templates/404.html @@ -27,7 +27,7 @@ <ul> <li>{% trans "this question or answer has been deleted;" %}</li> <li>{% trans "url has error - please check it;" %}</li> - <li>{% trans "the page you tried to visit is protected or you don't have sufficient points, see" %} <a href="/faq"> faq</a>;</li> + <li>{% trans "the page you tried to visit is protected or you don't have sufficient points, see" %} <a href="{% url faq %}"> faq</a>;</li> <li>{% trans "if you believe this error 404 should not have occured, please" %} <a href="{{feedback_site_url}}" target="_blank">{% trans "report this problem" %}</a></li> </u> @@ -38,9 +38,9 @@ </script> <script type="text/javascript" src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script> <ul> - <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} » </li> - <li><a href="/questions">{% trans "see all questions" %} » </a></li> - <li><a href="/tags/">{% trans "see all tags" %} » </a></li> + <li><a href="#" id="linkPrevious">{% trans "back to previous page" %} »</li> + <li><a href="{% url questions %}">{% trans "see all questions" %} »</a></li> + <li><a href="{% url tags %}">{% trans "see all tags" %} »</a></li> </u> </div> diff --git a/templates/500.html b/templates/500.html index 313150fb..51e73178 100644 --- a/templates/500.html +++ b/templates/500.html @@ -25,8 +25,8 @@ {% trans "please report the error to the site administrators if you wish" %} <ul> <li><a href="#" id="linkPrevious">{% trans "back to previous page" %}</li> - <li><a href="/questions">{% trans "see latest questions" %}</a></li> - <li><a href="/tags/">{% trans "see tags" %}</a></li> + <li><a href="{% url questions %}">{% trans "see latest questions" %}</a></li> + <li><a href="{% url tags %}">{% trans "see tags" %}</a></li> </u> </div> diff --git a/templates/answer_edit_tips.html b/templates/answer_edit_tips.html index bf1cd516..33e4e242 100644 --- a/templates/answer_edit_tips.html +++ b/templates/answer_edit_tips.html @@ -16,7 +16,7 @@ {% trans "be clear and concise" %} </li> </ul> - <a href="/faq/" target="_blank" title="{% trans "see frequently asked questions" %}" style="float:right;position:relative">faq »</a> + <a href="{% url faq %}" target="_blank" title="{% trans "see frequently asked questions" %}" style="float:right;position:relative">faq »</a> </div> </div> diff --git a/templates/badge.html b/templates/badge.html index 029ba0d9..73cba4ba 100644 --- a/templates/badge.html +++ b/templates/badge.html @@ -28,7 +28,7 @@ </div> <div id="award-list" style="clear:both;margin-left:20px;line-height:25px;"> {% for award in awards %} - <p style="width:185px;float:left"><a href="/users/{{ award.id }}/{{ award.name }}">{{ award.name }}</a> {% get_score_badge_by_details award.rep award.gold award.silver award.bronze %}</p> + <p style="width:185px;float:left"><a href="{% url users %}{{ award.id }}/{{ award.name }}">{{ award.name }}</a> {% get_score_badge_by_details award.rep award.gold award.silver award.bronze %}</p> {% endfor %} </div> diff --git a/templates/book.html b/templates/book.html index 23166cb7..cc6fc77b 100644 --- a/templates/book.html +++ b/templates/book.html @@ -98,7 +98,7 @@ <div class="favorites-empty"> </div> {% endif %} <div id="question-summary-{{question.id}}" class="question-summary narrow"> - <a style="text-decoration: none;" href="/questions/{{question.id}}/{{question.get_question_title}}"> + <a style="text-decoration: none;" href="{% url questions %}{{question.id}}/{{question.get_question_title}}"> <div class="stats"> <div class="votes"> <div class="vote-count-post">{{question.score|intcomma}}</div> @@ -118,7 +118,7 @@ </a> <div class="bookQuestionItem"> <h3> - <a title="{{question.summary|collapse}}" href="/questions/{{question.id}}/{{question.title}}">{{question.title}}</a> + <a title="{{question.summary|collapse}}" href="{% url questions %}{{question.id}}/{{question.title}}">{{question.title}}</a> </h3> <div class="tags"> {% for tag in question.tagname_list %} diff --git a/templates/content/js/com.cnprog.i18n.js b/templates/content/js/com.cnprog.i18n.js index 848ad59e..6ba8b59d 100644 --- a/templates/content/js/com.cnprog.i18n.js +++ b/templates/content/js/com.cnprog.i18n.js @@ -140,6 +140,8 @@ var i18nEs = { 'enter image url':'introduzca la URL de la imagen, por ejemplo:<br />http://www.example.com/image.jpg \"titulo de imagen\"', 'enter url':'introduzca direcciones web, ejemplo:<br />http://www.cnprog.com/ \"titulo del enlace\"</p>"', 'upload image':'cargar imagen:', + 'questions/' : 'preguntas/', + 'vote/' : 'votar/', }; var i18n = { diff --git a/templates/content/js/com.cnprog.post.js b/templates/content/js/com.cnprog.post.js index 546cf101..aa6c51b6 100644 --- a/templates/content/js/com.cnprog.post.js +++ b/templates/content/js/com.cnprog.post.js @@ -243,7 +243,7 @@ var Vote = function(){ type: "POST", cache: false, dataType: "json", - url: "/questions/" + questionId + "/vote/", + url: "/" + $.i18n._("questions/") + questionId + "/" + $.i18n._("vote/"), data: { "type": voteType, "postId": postId }, error: handleFail, success: function(data){callback(object, voteType, data)}}); diff --git a/templates/content/style/style.css b/templates/content/style/style.css index e353dd47..6d48198b 100644 --- a/templates/content/style/style.css +++ b/templates/content/style/style.css @@ -745,7 +745,7 @@ background-color: #97ff97; } /*用户资料页面*/ -.count {font-family:Arial;font-size:200%;font-weight:700;color:#777} +.count {font-family:Arial;font-size:24px;font-weight:700;color:#777} .scoreNumber{font-family:Arial;font-size:35px;font-weight:800;color:#777;line-height:40px; /*letter-spacing:0px*/ } diff --git a/templates/faq.html b/templates/faq.html index 7e99ae7f..aec37a56 100644 --- a/templates/faq.html +++ b/templates/faq.html @@ -25,7 +25,7 @@ <div> <h3 class="subtitle">{% trans "What should I avoid in my answers?" %}</h3> - <p>{% trans "site title" %} {% trans "is a Q&A site, not a discussion group. Therefore - please avoid having discussions in your answers, comment facility allows some space for brief discussions." %}</p> + <p>{{ settings.APP_TITLE }} {% trans "is a Q&A site, not a discussion group. Therefore - please avoid having discussions in your answers, comment facility allows some space for brief discussions." %}</p> </div> <div> @@ -39,13 +39,7 @@ <div> <h3 class="subtitle">{% trans "How does reputation system work?" %}</h3> <p>{% trans "Rep system summary" %}</p> - <p> - For example, if you ask an interesting question or give a helpful answer, your input will be upvoted. - On the other hand if the answer is misleading - it will be downvoted. - Each vote in favor will generate <strong>10</strong> points, each vote against will subtract <strong>2</strong> points. - There is a limit of <strong>200</strong> points that can be accumulated per question or answer. - - The table below explains reputation point requirements for each type of moderation task. + <p>{% blocktrans %}For example, if you ask an interesting question or give a helpful answer, your input will be upvoted. On the other hand if the answer is misleading - it will be downvoted. Each vote in favor will generate <strong>10</strong> points, each vote against will subtract <strong>2</strong> points. There is a limit of <strong>200</strong> points that can be accumulated per question or answer. The table below explains reputation point requirements for each type of moderation task.{% endblocktrans %} </p> <table style="font-family:arial;" cellspacing="3" cellpadding="3"> @@ -115,7 +109,7 @@ <div> <h3 class="subtitle">{% trans "To register, do I need to create new password?" %}</h3> <p>{% trans "No, you don't have to. You can login through any service that supports OpenID, e.g. Google, Yahoo, AOL, etc." %} - <strong><a href="/account/signin">{% trans "Login now!" %}</a> »</strong> + <strong><a href="{% url user_signin %}">{% trans "Login now!" %}</a> »</strong> </p> </div> @@ -129,7 +123,7 @@ <h3 class="subtitle">{% trans "Still have questions?" %}</h3> <p>{% trans "Please ask your question, help make our community better!" %} <!-- - <a href="/tags/faq" class="big">{% trans "site title" %} {% trans "questions" %}</a>{% trans "." %} + <a href="{% url tags %}faq" class="big">{{ settings.APP_TITLE }} {% trans "questions" %}</a>{% trans "." %} --> </p> </div> diff --git a/templates/footer.html b/templates/footer.html index c291c328..9e877b42 100644 --- a/templates/footer.html +++ b/templates/footer.html @@ -4,11 +4,11 @@ <!-- 页面底部开始: --> <div id="ground"> <div class="footerLinks" > - <a href="/about">{% trans "about" %}</a><span class="link-separator"> |</span> - <a href="/faq">{% trans "faq" %}</a><span class="link-separator"> |</span> + <a href="{% url about %}">{% trans "about" %}</a><span class="link-separator"> |</span> + <a href="{% url faq %}">{% trans "faq" %}</a><span class="link-separator"> |</span> <a href="{{ blog_url }}">{% trans "blog" %}</a><span class="link-separator"> |</span> <a href="{{ webmaster_email }}">{% trans "contact us" %}</a><span class="link-separator"> |</span> - <a href="/privacy">{% trans "privacy policy" %}</a><span class="link-separator"> |</span> + <a href="{% url privacy %}">{% trans "privacy policy" %}</a><span class="link-separator"> |</span> <a href="{{ feedback_url }}" target="_blank">{% trans "give feedback" %}</a> </div> <p style="margin-top:10px;"> @@ -27,7 +27,7 @@ </script> <script type="text/javascript"> try { - var pageTracker = _gat._getTracker({{ settings.GOOGLE_ANALYTICS_KEY }}); + var pageTracker = _gat._getTracker("{{ settings.GOOGLE_ANALYTICS_KEY }}"); pageTracker._trackPageview(); } catch(err) {} </script> diff --git a/templates/header.html b/templates/header.html index d606e9e7..e1097802 100644 --- a/templates/header.html +++ b/templates/header.html @@ -6,13 +6,13 @@ <div id="top"> <!--<div id="header">--> {% if request.user.is_authenticated %} - <a href="/users/{{ request.user.id }}/{{ request.user.username }}/">{{ request.user.username }}</a> {% get_score_badge request.user %} - <a href="/logout/">{% trans "logout" %}</a> + <a href="{% url users %}{{ request.user.id }}/{{ request.user.username }}/">{{ request.user.username }}</a> {% get_score_badge request.user %} + <a href="{% url logout %}">{% trans "logout" %}</a> {% else %} - <a href="/account/signin">{% trans "login" %}</a> + <a href="{% url user_signin %}">{% trans "login" %}</a> {% endif %} - <a href="/about">{% trans "about" %}</a> - <a href="/faq">{% trans "faq" %}</a> + <a href="{% url about %}">{% trans "about" %}</a> + <a href="{% url faq %}">{% trans "faq" %}</a> <!--</div>--> </div> <table width="100%" border="0" cellspacing="0" cellpadding="0"> @@ -26,20 +26,22 @@ </td> <td width="77%" valign="bottom"> <div class="nav"> - <a id="nav_questions" href="/questions/" >{% trans "questions" %}</a> - <a id="nav_tags" href="/tags/">{% trans "tags" %}</a> - <a id="nav_users" href="/users/">{% trans "users" %}</a> - <!--<a id="nav_books" href="/books/">{% trans "books" %}</a>--> - <a id="nav_badges" href="/badges/">{% trans "badges" %}</a> - <a id="nav_unanswered" href="/questions/unanswered/">{% trans "unanswered questions" %}</a> + <a id="nav_questions" href="{% url questions %}" >{% trans "questions" %}</a> + <a id="nav_tags" href="{% url tags %}">{% trans "tags" %}</a> + <a id="nav_users" href="{% url users %}">{% trans "users" %}</a> + {% if settings.BOOKS_ON %} + <a id="nav_books" href="{% url books %}">{% trans "books" %}</a> + {% endif %} + <a id="nav_badges" href="{% url badges %}">{% trans "badges" %}</a> + <a id="nav_unanswered" href="{% url unanswered %}">{% trans "unanswered questions" %}</a> {% comment %}<!-- i think this needs to be removed -e.f. --> {% if request.user.is_authenticated %} - <a id="nav_profile" href="/users/{{ request.user.id }}/{{ request.user.username }}/">{% trans "my profile" %}</a> + <a id="nav_profile" href="{% url user %}{{ request.user.id }}/{{ request.user.username }}/">{% trans "my profile" %}</a> {% endif %} {% endcomment %} <div class="focus"> - <a id="nav_ask" href="/questions/ask/" class="special">{% trans "ask a question" %}</a> + <a id="nav_ask" href="{% url ask %}" class="special">{% trans "ask a question" %}</a> </div> </div> @@ -51,7 +53,7 @@ <table width="100%" border="0" cellpadding="0" cellspacing="0" class="content"> <tr> <td align="center" valign="middle"> - <form action="/search/" method="get"> + <form action="{% url search %}" method="get"> <div> <input type="text" class="searchInput" value="{{ keywords }}" name="q" id="keywords" /> <input type="submit" name="Submit" value="{% trans "search" %}" class="searchBtn" /> diff --git a/templates/index.html b/templates/index.html index 964721f7..104b24d0 100644 --- a/templates/index.html +++ b/templates/index.html @@ -21,10 +21,10 @@ <div class="tabBar"> <div class="headQuestions">{% trans "Questions" %}</div> <div class="tabsA"> - <a id="latest" href="?sort=latest" title="{% trans "last updated questions" %}" >{% trans "newest" %}</a> - <a id="hottest" href="?sort=hottest" title="{% trans "hottest questions" %}" >{% trans "hottest" %}</a> - <a id="mostvoted" href="?sort=mostvoted" title="{% trans "most voted questions" %}" >{% trans "most voted" %}</a> - <a id="all" href="/questions/" title="{% trans "all questions" %}" >{% trans "all questions" %}</a> + <a id="latest" href="{% url questions %}?sort=latest" title="{% trans "last updated questions" %}" >{% trans "newest" %}</a> + <a id="hottest" href="{% url questions %}?sort=hottest" title="{% trans "hottest questions" %}" >{% trans "hottest" %}</a> + <a id="mostvoted" href="{% url questions %}?sort=mostvoted" title="{% trans "most voted questions" %}" >{% trans "most voted" %}</a> + <a id="all" href="{% url questions %}" title="{% trans "all questions" %}" >{% trans "all questions" %}</a> </div> </div> <!-- 问题列表 --> @@ -79,9 +79,9 @@ <div class="boxA"> <h3>{% trans "welcome to website" %}</h3> <div class="body"> - {{settings.APP_INTRO|safe}} - <div class="more"><a href="/about">{% trans "about" %} »</a></div> - <div class="more"><a href="/faq">{% trans "faq" %} »</a></div> + {{ settings.APP_INTRO|safe }} + <div class="more"><a href="{% url about %}">{% trans "about" %} »</a></div> + <div class="more"><a href="{% url faq %}">{% trans "faq" %} »</a></div> </div> </div> {% endif %} @@ -94,7 +94,7 @@ title="{% blocktrans with tag.name as tagname %}see questions tagged '{{tagname}}'{% endblocktrans %}" href="{% url forum.views.tag tag.name|urlencode %}">{{ tag.name }}</a> {% endfor %} </div> - <div class="more"><a href="/tags">{% trans "popular tags" %} »</a> </div> + <div class="more"><a href="{% url tags %}">{% trans "popular tags" %} »</a> </div> </div> </div> {% if awards %} @@ -104,13 +104,13 @@ <ul class="badge-list"> {% for award in awards %} <li> - <a href="/badges/{{award.badge_id}}/{{award.badge_name}}" title="{{ award.badge_description }}" class="medal"> + <a href="{% url badges %}{{award.badge_id}}/{{award.badge_name}}" title="{{ award.badge_description }}" class="medal"> <span class="badge{{ award.badge_type }}">●</span> {{ award.badge_name }}</a> {% trans "given to" %} - <a href="/users/{{award.user_id}}/{{award.user_name}}">{{ award.user_name }}</a> + <a href="{% url users %}{{award.user_id}}/{{award.user_name}}">{{ award.user_name }}</a> </li> {% endfor %} </ul> - <div class="more"><a href="/badges/">{% trans "all awards" %} »</a> </div> + <div class="more"><a href="{% url badges %}">{% trans "all awards" %} »</a> </div> </div> </div> {% endif %} @@ -120,7 +120,7 @@ {% endblock %} {% block tail %} <div style="padding:5px 0 5px 5px;"> -<span class="evenMore">{% trans "Still looking for more? See" %} <a href="/questions/">{% trans "complete list of questions" %}</a> {% trans "or" %} <a href="/tags/">{% trans "popular tags" %}</a>{% trans "." %} {% trans "Please help us answer" %} <a href="/questions/unanswered">{% trans "list of unanswered questions" %}</a>{% trans "." %}</span> +<span class="evenMore">{% trans "Still looking for more? See" %} <a href="{% url questions %}">{% trans "complete list of questions" %}</a> {% trans "or" %} <a href="/tags/">{% trans "popular tags" %}</a>{% trans "." %} {% trans "Please help us answer" %} <a href="{% url questions %}unanswered">{% trans "list of unanswered questions" %}</a>{% trans "." %}</span> </div> {% endblock %} <!-- index.html --> diff --git a/templates/question.html b/templates/question.html index 74bc014b..66713342 100644 --- a/templates/question.html +++ b/templates/question.html @@ -30,7 +30,7 @@ {% if not question.closed and request.user.is_authenticated %}initEditor();{% endif %} lanai.highlightSyntax(); - $('#btLogin').bind('click', function(){window.location.href='/account/signin/'; } ) + $('#btLogin').bind('click', function(){window.location.href='{% url user_signin %}'; } ) }); function initEditor(){ @@ -122,7 +122,7 @@ <div id="question-tags" class="tags" > {% for tag in question.tagname_list %} <a href="{% url forum.views.tag tag|urlencode %}" class="post-tag" - title="{% trans "see questions tagged" %}'{{ tag }}'{% trans "using tags" %}" rel="tag">{{ tag }}</a> + title="{% blocktrans with tag as tagname %}see questions tagged '{{ tagname }}'{% endblocktrans %}" rel="tag">{{ tag }}</a> {% endfor %} </div> <div id="question-controls" style="clear:both;"> @@ -174,7 +174,7 @@ {% gravatar question.last_edited_by 32 %} </td> <td style="width:160px; vertical-align:top"> - <a href="/users/{{ question.last_edited_by.id }}/{{ question.last_edited_by.username }}">{{ question.last_edited_by.username }}</a> + <a href="{% url users %}{{ question.last_edited_by.id }}/{{ question.last_edited_by.username }}">{{ question.last_edited_by.username }}</a> </td> </tr> {% else %} @@ -189,7 +189,7 @@ {% gravatar question.last_edited_by 32 %} </td> <td style="width:160px; vertical-align:top"> - <div><a href="/users/{{ question.last_edited_by.id }}/{{ question.last_edited_by.username }}">{{ question.last_edited_by.username }}</a></div> + <div><a href="{% url users %}{{ question.last_edited_by.id }}/{{ question.last_edited_by.username }}">{{ question.last_edited_by.username }}</a></div> <div> {% get_score_badge question.last_edited_by %} @@ -223,7 +223,7 @@ {% gravatar question.author 32 %} </td> <td align="left" style="width:160px;vertical-align:top"> - <div><a href="/users/{{ question.author.id }}/{{ question.author }}">{{ question.author }}</a></div> + <div><a href="{% url users %}{{ question.author.id }}/{{ question.author }}">{{ question.author }}</a></div> <div> {% get_score_badge question.author %} </div> @@ -361,7 +361,7 @@ {% gravatar answer.last_edited_by 32 %} </td> <td style="width:160px; vertical-align:top"> - <div><a href="/users/{{ answer.last_edited_by.id }}/{{ answer.last_edited_by.username }}">{{ answer.last_edited_by.username }}</a></div> + <div><a href="{% url users %}{{ answer.last_edited_by.id }}/{{ answer.last_edited_by.username }}">{{ answer.last_edited_by.username }}</a></div> </td> </tr> @@ -377,7 +377,7 @@ {% gravatar answer.last_edited_by 32 %} </td> <td style="width:160px; vertical-align:top"> - <div><a href="/users/{{ answer.last_edited_by.id }}/{{ answer.last_edited_by.username }}">{{ answer.last_edited_by.username }}</a></div> + <div><a href="{% url users %}{{ answer.last_edited_by.id }}/{{ answer.last_edited_by.username }}">{{ answer.last_edited_by.username }}</a></div> <div> {% get_score_badge answer.last_edited_by %} </div> @@ -407,7 +407,7 @@ {% gravatar answer.author 32 %} </td> <td style="width:160px; vertical-align:top"> - <div><a href="/users/{{ answer.author.id }}/{{ answer.author.username }}">{{ answer.author }}</a></div> + <div><a href="{% url users %}{{ answer.author.id }}/{{ answer.author.username }}">{{ answer.author }}</a></div> <div> {% get_score_badge answer.author %} </div> @@ -516,7 +516,7 @@ <div class="questions-related"> {% for question in similar_questions %} <p> - <a href="/questions/{{question.id}}/{{ question.get_question_title }}">{{ question.get_question_title }}</a> + <a href="{% url questions %}{{question.id}}/{{ question.get_question_title }}">{{ question.get_question_title }}</a> </p> {% endfor %} </div> diff --git a/templates/question_edit_tips.html b/templates/question_edit_tips.html index ef6dca15..85614595 100644 --- a/templates/question_edit_tips.html +++ b/templates/question_edit_tips.html @@ -13,7 +13,8 @@ {% trans "be clear and concise" %} </li> </ul> - <a href="/faq/" target="_blank" title="{% trans "see frequently asked questions" %}" style="float:right;position:relative">faq »</a> + <a href="{% url faq %}" target="_blank" title="{% trans "see frequently asked questions" %}" style="float:right;position:relative">{% trans "faq" %} »</a> + <br> </div> </div> diff --git a/templates/revisions_answer.html b/templates/revisions_answer.html index 9c2e53eb..23606dc9 100644 --- a/templates/revisions_answer.html +++ b/templates/revisions_answer.html @@ -73,7 +73,7 @@ </td> <td style="width:120px; vertical-align:top"> <div style="height:18px"> - <a href="/users/{{ revision.author.id }}/{{ revision.author.username }}">{{ revision.author.username }}</a></div> + <a href="{% url users %}{{ revision.author.id }}/{{ revision.author.username }}">{{ revision.author.username }}</a></div> <div> {% get_score_badge revision.author %} </div> diff --git a/templates/revisions_question.html b/templates/revisions_question.html index 7ada3e74..b76ced24 100644 --- a/templates/revisions_question.html +++ b/templates/revisions_question.html @@ -73,7 +73,7 @@ </td> <td style="width:120px; vertical-align:top"> <div style="height:18px"> - <a href="/users/{{ revision.author.id }}/{{ revision.author.username }}">{{ revision.author.username }}</a></div> + <a href="{% url users %}{{ revision.author.id }}/{{ revision.author.username }}">{{ revision.author.username }}</a></div> <div> {% get_score_badge revision.author %} </div> diff --git a/templates/tags.html b/templates/tags.html index 65a7e4dd..f558594a 100644 --- a/templates/tags.html +++ b/templates/tags.html @@ -29,8 +29,8 @@ <div class="tabBar"> <div class="headQuestions">{% trans "Tag list" %}</div> <div class="tabsA"> - <a id="sort_name" href="/tags/?sort=name" class="off" title="{% trans "sorted alphabetically" %}">{% trans "by name" %}</a> - <a id="sort_used" href="/tags/?sort=used" class="off" title="{% trans "sorted by frequency of tag use" %}">{% trans "by popularity" %}</a> + <a id="sort_name" href="{% url tags %}?sort=name" class="off" title="{% trans "sorted alphabetically" %}">{% trans "by name" %}</a> + <a id="sort_used" href="{% url tags %}?sort=used" class="off" title="{% trans "sorted by frequency of tag use" %}">{% trans "by popularity" %}</a> </div> </div> <div id="searchtags"> diff --git a/templates/user_info.html b/templates/user_info.html index 86e36023..e56fb143 100644 --- a/templates/user_info.html +++ b/templates/user_info.html @@ -31,7 +31,7 @@ <th width="130" align="left"><strong>{% trans "Registered user" %}</strong></th> <th width="230" align="right"> {% if request.user|can_view_user_edit:view_user %} - <span class="user-edit-link"><a href="/users/{{ view_user.id }}/edit/">{% trans "update profile" %}</a></span> + <span class="user-edit-link"><a href="{% url users %}{{ view_user.id }}/{% trans "edit/" %}">{% trans "update profile" %}</a></span> {% endif %} </th> </tr> diff --git a/templates/user_reputation.html b/templates/user_reputation.html index bb7200de..270bb37d 100644 --- a/templates/user_reputation.html +++ b/templates/user_reputation.html @@ -33,7 +33,7 @@ <div style="float:left;width:20px;color:red">{{ rep.negative }}</div> </div> - <a href="/questions/{{ rep.question_id }}/{{ rep.title }}">{{ rep.title }}</a> <span class="small">({{ rep.reputed_at }})</span> + <a href="{% url questions %}{{ rep.question_id }}/{{ rep.title }}">{{ rep.title }}</a> <span class="small">({{ rep.reputed_at }})</span> </p> {% endfor %} </div> diff --git a/templates/user_stats.html b/templates/user_stats.html index 2c2a7a72..07578cb7 100644 --- a/templates/user_stats.html +++ b/templates/user_stats.html @@ -7,85 +7,51 @@ {% block usercontent %} <a name="questions"></a> - <table> - <tr> - <td> - <div style="text-align: right;" class="count">{{questions|length}}</div> - </td> - <td> - <h2>{% trans "User questions" %}</h2> - </td> - </tr> - </table> + <h2><span class="count">{{questions|length}}</span> {% trans "User questions" %}</h2> {% include "users_questions.html" %} - <p> </p> <a name="answers"></a> - <table> - <tr> - <td> - <div style="text-align: right;" class="count">{{answered_questions|length}}</div> - </td> - <td > - <h2>{% trans "Answers" %}</h2> - </td> - </tr> - </table> + <h2><span class="count">{{answered_questions|length}}</span> {% trans "Answers" %}</h2> <div class="user-stats-table"> {% for answered_question in answered_questions %} <div class="answer-summary"> - <a title="{{answered_question.summary|collapse}}" href="/questions/{{answered_question.id}}/{{answered_question.title}}#{{answered_question.answer_id}}"> - <div class="answer-votes {% if answered_question.accepted %}answered-accepted{% endif %}" - title="{% blocktrans with answered_question.vote_count as vote_count %}the answer has been voted for {{ vote_count }} times{% endblocktrans %} {% if answered_question.accepted %}{% trans "this answer has been selected as correct" %}{%endif%}"> + <a title="{{answered_question.summary|collapse}}" + href="{% url questions %}{{answered_question.id}}/{{answered_question.title}}#{{answered_question.answer_id}}"> + <span class="answer-votes {% if answered_question.accepted %}answered-accepted{% endif %}" + title="{% blocktrans with answered_question.vote_count as vote_count %}the answer has been voted for {{ vote_count }} times{% endblocktrans %} {% if answered_question.accepted %}{% trans "this answer has been selected as correct" %}{%endif%}"> {{ answered_question.vote_count }} - </div> + </span> </a> <div class="answer-link"> - <a href="/questions/{{answered_question.id}}/{{answered_question.title}}#{{answered_question.answer_id}}">{{answered_question.title}}</a> {% if answered_question.comment_count %}<span - title="{% blocktrans with answered_question.comment_count as comment_count %}the answer has been commented {{ comment_count }} times{% endblocktrans %}">({{answered_question.comment_count}})</span>{% endif %} + <a href="{% url questions %}{{answered_question.id}}/{{answered_question.title}}#{{answered_question.answer_id}}">{{answered_question.title}}</a> + {% if answered_question.comment_count %} + <span> + {% blocktrans with answered_question.comment_count as comment_count %}the answer has been commented {{ comment_count }} times{% endblocktrans %} + </span> + {% endif %} </div> </div> {% endfor %} </div> - <p> </p> <a name="votes"></a> - <table> - <tr> - <td> - <div style="text-align: right;" class="count">{{total_votes}}</div> - </td> - <td > - <h2>{% trans "votes total" %}</h2> - </td> - </tr> - </table> + <h2><span class="count">{{total_votes}}</span> {% trans "Votes" %}</h2> <div class="user-stats-table"> - <table height="50px"> + <table> <tr> <td width="60"> - <img style="cursor: default;" align="absmiddle" src="/content/images/vote-arrow-up-on.png"/> + <img style="cursor: default;" src="/content/images/vote-arrow-up-on.png" alt="{% trans "thumb up" %}" /> <span title="{% trans "user has voted up this many times" %}" class="vote-count">{{up_votes}}</span> </td> <td width="60"> - <img style="cursor: default;" align="absmiddle" src="/content/images/vote-arrow-down-on.png"/> + <img style="cursor: default;" src="/content/images/vote-arrow-down-on.png" alt="{% trans "thumb down" %}" /> <span title="{% trans "user voted down this many times" %}" class="vote-count">{{down_votes}}</span> </td> </tr> </table> </div> - <p> </p> <a name="tags"></a> - <table> - <tr> - <td> - <div style="text-align: right;" class="count">{{tags|length}}</div> - </td> - <td > - <h2>{% trans "Tags" %}</h2> - </td> - </tr> - </table> + <h2><span class="count">{{tags|length}}</span> {% trans "Tags" %}</h2> <div class="user-stats-table"> <table class="tags"> <tr> @@ -103,24 +69,14 @@ </tr> </table> </div> - <p> </p> <a name="badges"></a> - <table> - <tr> - <td> - <div style="text-align: right;" class="count">{{total_awards}}</div> - </td> - <td > - <h2>{% trans "Badges" %}</h2> - </td> - </tr> - </table> + <h2><span class="count">{{total_awards}}</span> {% trans "Badges" %}</h2> <div class="user-stats-table"> <table> <tr> <td width="180" style="line-height:35px"> {% for award in awards %} - <a href="/badges/{{award.id}}/{{award.name}}" title="{{ award.description }}" class="medal"><span class="badge{{ award.type }}">●</span> {{ award.name }}</a><span class="tag-number"> × {{ award.count|intcomma }}</span><br/> + <a href="{% url badges %}{{award.id}}/{{award.name}}" title="{{ award.description }}" class="medal"><span class="badge{{ award.type }}">●</span> {{ award.name }}</a><span class="tag-number"> ✕ {{ award.count|intcomma }}</span><br/> {% if forloop.counter|divisibleby:"6" %} </td> <td width="180" style="line-height:35px"> diff --git a/templates/user_tabs.html b/templates/user_tabs.html index 7800eb00..cb7e1d2f 100644 --- a/templates/user_tabs.html +++ b/templates/user_tabs.html @@ -4,28 +4,28 @@ <div class="tabBar"> <div class="tabsA"> <a id="stats" {% ifequal tab_name "stats" %}class="on"{% endifequal %} - title="{% trans "User profile" %}" href="/users/{{view_user.id}}/{{view_user.username}}?sort=stats">{% trans "overview" %}</a> + title="{% trans "User profile" %}" href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=stats">{% trans "overview" %}</a> <a id="recent" {% ifequal tab_name "recent" %}class="on"{% endifequal %} - title="{% trans "recent activity" %}" href="/users/{{view_user.id}}/{{view_user.username}}?sort=recent">{% trans "recent activity" %}</a> + title="{% trans "recent activity" %}" href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=recent">{% trans "recent activity" %}</a> {% if request.user|is_user_self:view_user %} <a id="responses" {% ifequal tab_name "responses" %}class="on"{% endifequal %} title="{% trans "comments and answers to others questions" %}" - href="/users/{{view_user.id}}/{{view_user.username}}?sort=responses">{% trans "responses" %}</a> + href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=responses">{% trans "responses" %}</a> {% endif %} <a id="reputation" {% ifequal tab_name "reputation" %}class="on"{% endifequal %} title="{% trans "graph of user reputation" %}" - href="/users/{{view_user.id}}/{{view_user.username}}?sort=reputation">{% trans "reputation history" %}</a> + href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=reputation">{% trans "reputation history" %}</a> {% if request.user|can_view_user_votes:view_user %} <a id="votes" {% ifequal tab_name "votes" %}class="on"{% endifequal %} - title="{% trans "user vote record" %}" href="/users/{{view_user.id}}/{{view_user.username}}?sort=votes">{% trans "casted votes" %}</a> + title="{% trans "user vote record" %}" href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=votes">{% trans "casted votes" %}</a> {% endif %} <a id="favorites" {% ifequal tab_name "favorites" %}class="on"{% endifequal %} title="{% trans "questions that user selected as his/her favorite" %}" - href="/users/{{view_user.id}}/{{view_user.username}}?sort=favorites">{% trans "favorites" %}</a> + href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=favorites">{% trans "favorites" %}</a> {% if request.user|can_view_user_preferences:view_user %} <a id="preferences" {% ifequal tab_name "preferences" %}class="on"{% endifequal %} title="{% trans "user preference settings" %}" - href="/users/{{view_user.id}}/{{view_user.username}}?sort=preferences">{% trans "settings" %}</a> + href="{% url users %}{{view_user.id}}/{{view_user.username}}?sort=preferences">{% trans "settings" %}</a> {% endif %} </div> </div> diff --git a/templates/user_votes.html b/templates/user_votes.html index 80fa27ee..45134ac9 100644 --- a/templates/user_votes.html +++ b/templates/user_votes.html @@ -18,9 +18,9 @@ </div> <div style="float:left;overflow:hidden;width:750px"> {% ifequal vote.answer_id 0 %} - <span class="question-title-link"><a href="/questions/{{ vote.question_id }}/{{ vote.title }}">{{ vote.title }}</a></span> + <span class="question-title-link"><a href="{% url questions %}{{ vote.question_id }}/{{ vote.title }}">{{ vote.title }}</a></span> {% else %} - <span class="answer-title-link" ><a href="/questions/{{ vote.question_id }}/{{ vote.title }}#{{ vote.answer_id }}">{{ vote.title }}</a></span> + <span class="answer-title-link" ><a href="{% url questions %}{{ vote.question_id }}/{{ vote.title }}#{{ vote.answer_id }}">{{ vote.title }}</a></span> {% endifequal %} <div style="height:5px"></div> </div> diff --git a/templates/users_questions.html b/templates/users_questions.html index 7b00fd3f..9907885e 100644 --- a/templates/users_questions.html +++ b/templates/users_questions.html @@ -9,13 +9,15 @@ {% if question.favorited_myself %} <div class="favorites-count"> <img title="{% trans "this questions was selected as favorite" %} {{question.favourite_count}} {% trans "number of times" %}" - src="/content/images/vote-favorite-on.png"> + alt="{% trans "thumb-up on" %}" + src="/content/images/vote-favorite-on.png"/> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% else %} <div class="favorites-count-off"> <img title="{% trans "this question was selected as favorite" %}{{question.favourite_count}} {% trans "number of times" %}" - src="/content/images/vote-favorite-off.png"> + alt="{% trans "thumb-up off" %}" + src="/content/images/vote-favorite-off.png"/> <div><b>{{question.favourite_count|intcomma}}</b></div> </div> {% endif %} @@ -23,27 +25,27 @@ <div class="favorites-empty"> </div> {% endif %} <div id="question-summary-{{question.id}}" class="question-summary narrow"> - <a style="text-decoration: none;" href="/questions/{{question.id}}/{{question.get_question_title}}"> - <div class="stats"> - <div class="votes"> - <div class="vote-count-post">{{question.vote_count|intcomma}}</div> + <a style="text-decoration: none;" href="{% url questions %}{{question.id}}/{{question.get_question_title}}"> + <span class="stats"> + <span class="votes"> + <span class="vote-count-post">{{question.vote_count|intcomma}}</span> {% trans "votes" %} - </div> - <div title="{% if question.answer_accepted %}{% trans "this answer has been accepted to be correct" %}{% endif %}" class="status {% if question.answer_accepted %}answered-accepted{% endif %} {% ifequal question.answer_count 0 %}unanswered{% endifequal %}{% ifnotequal question.answer_count 0 %}answered{% endifnotequal %}"> - <div class="answer-count-post">{{question.answer_count|intcomma}}</div> + </span> + <span title="{% if question.answer_accepted %}{% trans "this answer has been accepted to be correct" %}{% endif %}" class="status {% if question.answer_accepted %}answered-accepted{% endif %} {% ifequal question.answer_count 0 %}unanswered{% endifequal %}{% ifnotequal question.answer_count 0 %}answered{% endifnotequal %}"> + <span class="answer-count-post">{{question.answer_count|intcomma}}</span> {% trans "answers" %} - </div> - <div class="views"> - <div class="views-count-post">{{question.view_count|cnprog_intword|safe}}</div> + </span> + <span class="views"> + <span class="views-count-post">{{question.view_count|cnprog_intword|safe}}</span> {% trans "views" %} - </div> - </div> + </span> + </span> </a> <div class="summary"> <h3> - <a title="{{question.summary|collapse}}" href="/questions/{{question.id}}/{{question.title}}">{{question.title}}</a> + <a title="{{question.summary}}" href="{% url questions %}{{question.id}}/{{question.title}}">{{question.title}}</a> </h3> <div class="tags"> {% convert2tagname_list question %} @@ -55,12 +57,12 @@ <div class="started"> <span class="relativetime" title="{{question.last_activity_at}}">{% diff_date question.last_activity_at %}</span> {% if question.la_username %} - <a href="/users/{{question.la_user_id}}/{{question.la_username}}">{{question.la_username}}</a> {% get_score_badge_by_details question.la_user_reputation question.la_user_gold question.la_user_silver question.la_user_bronze%} + <a href="{% url users %}{{question.la_user_id}}/{{question.la_username}}">{{question.la_username}}</a> {% get_score_badge_by_details question.la_user_reputation question.la_user_gold question.la_user_silver question.la_user_bronze%} {% endif %} </div> </div> </div> - <br clear="both"/> + <br clear="all"/> {% endfor %} </div> <!-- end users_questions.html --> @@ -4,6 +4,7 @@ from django.contrib import admin from forum.views import index from forum import views as app from forum.feed import RssLastestQuestionsFeed +from django.utils.translation import ugettext as _ admin.autodiscover() feeds = { @@ -18,50 +19,50 @@ urlpatterns = patterns('', (r'^content/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.join(APP_PATH, 'templates/content').replace('\\','/')} ), - (r'^upfiles/(?P<path>.*)$', 'django.views.static.serve', + (r'^%s(?P<path>.*)$' % _('upfiles/'), 'django.views.static.serve', {'document_root': os.path.join(APP_PATH, 'templates/upfiles').replace('\\','/')} ), - (r'^account/', include('django_authopenid.urls')), - (r'^signin/$', 'django_authopenid.views.signin'), - url(r'^email/change/$', 'django_authopenid.views.changeemail', name='user_changeemail'), - url(r'^email/sendkey/$', 'django_authopenid.views.send_email_key'), - url(r'^email/verify/(?P<id>\d+)/(?P<key>[\dabcdef]{32})/$', 'django_authopenid.views.verifyemail', name='user_verifyemail'), - url(r'^about/$', app.about, name='about'), - url(r'^faq/$', app.faq, name='faq'), - url(r'^privacy/$', app.privacy, name='privacy'), - url(r'^logout/$', app.logout, name='logout'), - url(r'^answers/(?P<id>\d+)/comments/$', app.answer_comments, name='answer_comments'), - url(r'^answers/(?P<id>\d+)/edit/$', app.edit_answer, name='edit_answer'), - url(r'^answers/(?P<id>\d+)/revisions/$', app.answer_revisions, name='answer_revisions'), - url(r'^questions/$', app.questions, name='questions'), - url(r'^questions/ask/$', app.ask, name='ask'), - url(r'^questions/unanswered/$', app.unanswered, name='unanswered'), - url(r'^questions/(?P<id>\d+)/edit/$', app.edit_question, name='edit_question'), - url(r'^questions/(?P<id>\d+)/close/$', app.close, name='close'), - url(r'^questions/(?P<id>\d+)/reopen/$', app.reopen, name='reopen'), - url(r'^questions/(?P<id>\d+)/answer/$', app.answer, name='answer'), - url(r'^questions/(?P<id>\d+)/vote/$', app.vote, name='vote'), - url(r'^questions/(?P<id>\d+)/revisions/$', app.question_revisions, name='question_revisions'), - url(r'^questions/(?P<id>\d+)/comments/$', app.question_comments, name='question_comments'), - url(r'^questions/(?P<question_id>\d+)/comments/(?P<comment_id>\d+)/delete/$', app.delete_question_comment, name='delete_question_comment'), - url(r'^answers/(?P<answer_id>\d+)/comments/(?P<comment_id>\d+)/delete/$', app.delete_answer_comment, name='delete_answer_comment'), + (r'^%s' % _('account/'), include('django_authopenid.urls')), + (r'^%s/$' % _('signin/'), 'django_authopenid.views.signin'), + url(r'^%s%s$' % (_('email/'), _('change/')), 'django_authopenid.views.changeemail', name='user_changeemail'), + url(r'^%s%s$' % (_('email/'), _('sendkey/')), 'django_authopenid.views.send_email_key'), + url(r'^%s%s(?P<id>\d+)/(?P<key>[\dabcdef]{32})/$' % (_('email/'), _('verify/')), 'django_authopenid.views.verifyemail', name='user_verifyemail'), + url(r'^%s$' % _('about/'), app.about, name='about'), + url(r'^%s$' % _('faq/'), app.faq, name='faq'), + url(r'^%s$' % _('privacy/'), app.privacy, name='privacy'), + url(r'^%s$' % _('logout/'), app.logout, name='logout'), + url(r'^%s(?P<id>\d+)/%s$' % (_('answers/'), _('comments/')), app.answer_comments, name='answer_comments'), + url(r'^%s(?P<id>\d+)/%s$' % (_('answers/'), _('edit/')), app.edit_answer, name='edit_answer'), + url(r'^%s(?P<id>\d+)/%s$' % (_('answers/'), _('revisions/')), app.answer_revisions, name='answer_revisions'), + url(r'^%s$' % _('questions/'), app.questions, name='questions'), + url(r'^%s%s$' % (_('questions/'), _('ask/')), app.ask, name='ask'), + url(r'^%s%s$' % (_('questions/'), _('unanswered/')), app.unanswered, name='unanswered'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('edit/')), app.edit_question, name='edit_question'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('close/')), app.close, name='close'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('reopen/')), app.reopen, name='reopen'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('answer/')), app.answer, name='answer'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('vote/')), app.vote, name='vote'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('revisions/')), app.question_revisions, name='question_revisions'), + url(r'^%s(?P<id>\d+)/%s$' % (_('questions/'), _('comments/')), app.question_comments, name='question_comments'), + url(r'^%s(?P<question_id>\d+)/%s(?P<comment_id>\d+)/%s$' % (_('questions/'), _('questions/'),_('delete/')), app.delete_question_comment, name='delete_question_comment'), + url(r'^%s(?P<answer_id>\d+)/%s(?P<comment_id>\d+)/%s$' % (_('answers/'), _('answers/'),_('delete/')), app.delete_answer_comment, name='delete_answer_comment'), #place general question item in the end of other operations - url(r'^questions/(?P<id>\d+)//*', app.question, name='question'), - (r'^tags/$', app.tags), - (r'^tags/(?P<tag>[^/]+)/$', app.tag), - (r'^users/$',app.users), - url(r'^users/(?P<id>\d+)/edit/$', app.edit_user, name='edit_user'), - url(r'^users/(?P<id>\d+)//*', app.user, name='user'), - url(r'^badges/$',app.badges, name='badges'), - url(r'^badges/(?P<id>\d+)//*', app.badge, name='badge'), - url(r'^messages/markread/$',app.read_message, name='read_message'), - # (r'^admin/doc/', include('django.contrib.admindocs.urls')), - (r'^nimda/(.*)', admin.site.root), - (r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), - (r'^upload/$', app.upload), - url(r'^books/$', app.books, name='books'), - url(r'^books/ask/(?P<short_name>[^/]+)/$', app.ask_book, name='ask_book'), - url(r'^books/(?P<short_name>[^/]+)/$', app.book, name='book'), - url(r'^search/$', app.search, name='search'), + url(r'^%s(?P<id>\d+)//*' % _('question/'), app.question, name='question'), + url(r'^%s$' % _('tags/'), app.tags, name='tags'), + url(r'^%s(?P<tag>[^/]+)/$' % _('tags/'), app.tag), + url(r'^%s$' % _('users/'),app.users, name='users'), + url(r'^%s(?P<id>\d+)/%s$' % (_('users/'), _('edit/')), app.edit_user, name='edit_user'), + url(r'^%s(?P<id>\d+)//*' % _('users/'), app.user, name='user'), + url(r'^%s$' % _('badges/'),app.badges, name='badges'), + url(r'^%s(?P<id>\d+)//*' % _('badges/'), app.badge, name='badge'), + url(r'^%s%s$' % (_('messages/'), _('markread/')),app.read_message, name='read_message'), + # (r'^admin/doc/' % _('admin/doc'), include('django.contrib.admindocs.urls')), + (r'^%s(.*)' % _('nimda/'), admin.site.root), + url(r'^feeds/(?P<url>.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), + (r'^%s$' % _('upload/'), app.upload), + url(r'^%s$' % _('books/'), app.books, name='books'), + url(r'^%s%s(?P<short_name>[^/]+)/$' % (_('books/'), _('ask/')), app.ask_book, name='ask_book'), + url(r'^%s(?P<short_name>[^/]+)/$' % _('books/'), app.book, name='book'), + url(r'^%s$' % _('search/'), app.search, name='search'), (r'^i18n/', include('django.conf.urls.i18n')), ) |