summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--django_authopenid/util.py2
-rw-r--r--forum/admin.py12
-rw-r--r--forum/auth.py2
-rw-r--r--forum/feed.py2
-rw-r--r--forum/forms.py1
-rw-r--r--forum/managers.py47
-rw-r--r--forum/models.py44
-rw-r--r--forum/templatetags/extra_tags.py9
-rw-r--r--forum/views.py840
-rw-r--r--locale/es/LC_MESSAGES/django.mobin49713 -> 367 bytes
-rw-r--r--locale/es/LC_MESSAGES/django.po3213
-rw-r--r--rmpyc1
-rw-r--r--settings.py3
-rw-r--r--settings_local.py.dist54
-rw-r--r--templates/about.html31
-rw-r--r--templates/ask.html7
-rw-r--r--templates/authopenid/confirm_email.txt14
-rw-r--r--templates/authopenid/email_validation.txt16
-rw-r--r--templates/authopenid/sendpw_email.txt4
-rw-r--r--templates/content/style/style.css605
-rw-r--r--templates/header.html1
-rw-r--r--templates/index.html5
-rw-r--r--templates/question.html33
-rw-r--r--templates/question_edit.html6
-rw-r--r--templates/questions.html1
-rw-r--r--templates/user_stats.html5
26 files changed, 2661 insertions, 2297 deletions
diff --git a/django_authopenid/util.py b/django_authopenid/util.py
index edb6808e..2b9d44a2 100644
--- a/django_authopenid/util.py
+++ b/django_authopenid/util.py
@@ -28,7 +28,7 @@ def clean_next(next):
return DEFAULT_NEXT
next = str_to_unicode(urllib.unquote(next), 'utf-8')
next = next.strip()
- if next.startswith('/'):
+ if next.startswith('/') and len(next)>1:
return next
return DEFAULT_NEXT
diff --git a/forum/admin.py b/forum/admin.py
index 482da048..810ae3d0 100644
--- a/forum/admin.py
+++ b/forum/admin.py
@@ -46,15 +46,6 @@ class ReputeAdmin(admin.ModelAdmin):
class ActivityAdmin(admin.ModelAdmin):
""" admin class"""
-class BookAdmin(admin.ModelAdmin):
- """ admin class"""
-
-class BookAuthorInfoAdmin(admin.ModelAdmin):
- """ admin class"""
-
-class BookAuthorRssAdmin(admin.ModelAdmin):
- """ admin class"""
-
admin.site.register(Question, QuestionAdmin)
admin.site.register(Tag, TagAdmin)
@@ -69,6 +60,3 @@ admin.site.register(Badge, BadgeAdmin)
admin.site.register(Award, AwardAdmin)
admin.site.register(Repute, ReputeAdmin)
admin.site.register(Activity, ActivityAdmin)
-admin.site.register(Book, BookAdmin)
-admin.site.register(BookAuthorInfo, BookAuthorInfoAdmin)
-admin.site.register(BookAuthorRss, BookAuthorRssAdmin)
diff --git a/forum/auth.py b/forum/auth.py
index 1569482f..eb81f853 100644
--- a/forum/auth.py
+++ b/forum/auth.py
@@ -1,4 +1,4 @@
-"""
+ """
Authorisation related functions.
The actions a User is authorised to perform are dependent on their reputation
diff --git a/forum/feed.py b/forum/feed.py
index ad1d5cbd..59983161 100644
--- a/forum/feed.py
+++ b/forum/feed.py
@@ -22,7 +22,7 @@ class RssLastestQuestionsFeed(Feed):
copyright = settings.APP_COPYRIGHT
def item_link(self, item):
- return self.link + '%s/' % item.id
+ return settings.APP_URL + '%s' % item.get_absolute_url()
def item_author_name(self, item):
return item.author.username
diff --git a/forum/forms.py b/forum/forms.py
index ad2c5bac..ad8a676a 100644
--- a/forum/forms.py
+++ b/forum/forms.py
@@ -176,6 +176,7 @@ class EditQuestionForm(forms.Form):
tags = TagNamesField()
summary = SummaryField()
+
def __init__(self, question, revision, *args, **kwargs):
super(EditQuestionForm, self).__init__(*args, **kwargs)
self.fields['title'].initial = revision.title
diff --git a/forum/managers.py b/forum/managers.py
index 06fae761..1504491a 100644
--- a/forum/managers.py
+++ b/forum/managers.py
@@ -7,28 +7,6 @@ from forum.models import *
from urllib import quote, unquote
class QuestionManager(models.Manager):
-<<<<<<< HEAD:forum/managers.py
- def get_translation_questions(self, orderby, page_size):
- questions = self.filter(deleted=False, author__id__in=[28,29]).order_by(orderby)[:page_size]
- return questions
-
- def get_questions_by_pagesize(self, orderby, page_size):
- questions = self.filter(deleted=False).order_by(orderby)[:page_size]
- return questions
-
- def get_questions_by_tag(self, tagname, orderby):
- questions = self.filter(deleted=False, tags__name = unquote(tagname)).order_by(orderby)
- return questions
-
- def get_unanswered_questions(self, orderby):
- questions = self.filter(deleted=False, answer_accepted=False).order_by(orderby)
- return questions
-
- def get_questions(self, orderby):
- questions = self.filter(deleted=False).order_by(orderby)
- return questions
-=======
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/managers.py
def update_tags(self, question, tagnames, user):
"""
@@ -95,20 +73,12 @@ class QuestionManager(models.Manager):
Questions with the individual tags will be added to list if above questions are not full.
"""
#print datetime.datetime.now()
-<<<<<<< HEAD:forum/managers.py
from forum.models import Question
- questions = list(Question.objects.filter(tagnames = question.tagnames, deleted=False).all())
-
- tags_list = question.tags.all()
- for tag in tags_list:
- extend_questions = Question.objects.filter(tags__id = tag.id, deleted=False)[:50]
-=======
questions = list(self.filter(tagnames = question.tagnames, deleted=False).all())
tags_list = question.tags.all()
for tag in tags_list:
extend_questions = self.filter(tags__id = tag.id, deleted=False)[:50]
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/managers.py
for item in extend_questions:
if item not in questions and len(questions) < 10:
questions.append(item)
@@ -177,17 +147,22 @@ class TagManager(models.Manager):
class AnswerManager(models.Manager):
GET_ANSWERS_FROM_USER_QUESTIONS = u'SELECT answer.* FROM answer INNER JOIN question ON answer.question_id = question.id WHERE question.author_id =%s AND answer.author_id <> %s'
- def get_answers_from_question(self, question, user=None):
+ def get_answers_from_question(self, question, user=None, other_orderby = None):
"""
Retrieves visibile answers for the given question. Delete answers
are only visibile to the person who deleted them.
- """
-
+ """
if user is None or not user.is_authenticated():
- return self.filter(question=question, deleted=False)
+ q = self.filter(question=question, deleted=False)
else:
- return self.filter(Q(question=question),
- Q(deleted=False) | Q(deleted_by=user))
+ q = self.filter(Q(question=question),
+ Q(deleted=False) | Q(deleted_by=user))
+ if other_orderby is None:
+ q = q.order_by("-accepted")
+ else:
+ q = q.order_by("-accepted", other_orderby)
+
+ return q
def get_answers_from_questions(self, user_id):
"""
diff --git a/forum/models.py b/forum/models.py
index f1876588..3e1e6543 100644
--- a/forum/models.py
+++ b/forum/models.py
@@ -3,10 +3,7 @@ import datetime
import hashlib
from urllib import quote_plus, urlencode
from django.db import models, IntegrityError
-<<<<<<< HEAD:forum/models.py
-=======
from django.utils.http import urlquote as django_urlquote
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
from django.utils.html import strip_tags
from django.core.urlresolvers import reverse
from django.contrib.auth.models import User
@@ -16,10 +13,6 @@ from django.template.defaultfilters import slugify
from django.db.models.signals import post_delete, post_save, pre_save
from django.utils.translation import ugettext as _
from django.utils.safestring import mark_safe
-<<<<<<< HEAD:forum/models.py
-import django.dispatch
-import settings
-=======
from django.contrib.sitemaps import ping_google
import django.dispatch
import settings
@@ -27,7 +20,6 @@ import logging
if settings.USE_SPHINX_SEARCH == True:
from djangosphinx.models import SphinxSearch
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
from forum.managers import *
from const import *
@@ -110,8 +102,6 @@ class Comment(models.Model):
class Meta:
ordering = ('-added_at',)
db_table = u'comment'
-<<<<<<< HEAD:forum/models.py
-=======
def save(self,**kwargs):
super(Comment,self).save(**kwargs)
@@ -120,7 +110,6 @@ class Comment(models.Model):
except Exception:
logging.debug('problem pinging google did you register you sitemap with google?')
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
def __unicode__(self):
return self.comment
@@ -209,10 +198,6 @@ class Question(models.Model):
votes = generic.GenericRelation(Vote)
flagged_items = generic.GenericRelation(FlaggedItem)
-<<<<<<< HEAD:forum/models.py
- objects = QuestionManager()
-
-=======
if settings.USE_SPHINX_SEARCH == True:
search = SphinxSearch(
index=' '.join(settings.SPHINX_SEARCH_INDICES),
@@ -229,7 +214,6 @@ class Question(models.Model):
except Exception:
logging.debug('problem pinging google did you register you sitemap with google?')
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
def save(self, **kwargs):
"""
Overridden to manually manage addition of tags when the object
@@ -240,13 +224,10 @@ class Question(models.Model):
"""
initial_addition = (self.id is None)
super(Question, self).save(**kwargs)
-<<<<<<< HEAD:forum/models.py
-=======
try:
ping_google()
except Exception:
logging.debug('problem pinging google did you register you sitemap with google?')
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
if initial_addition:
tags = Tag.objects.get_or_create_multiple(self.tagname_list(),
self.author)
@@ -261,11 +242,7 @@ class Question(models.Model):
return u','.join([unicode(tag) for tag in self.tagname_list()])
def get_absolute_url(self):
-<<<<<<< HEAD:forum/models.py
- return '%s%s' % (reverse('question', args=[self.id]), slugify(self.title))
-=======
return '%s%s' % (reverse('question', args=[self.id]), django_urlquote(slugify(self.title)))
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
def has_favorite_by_user(self, user):
if not user.is_authenticated():
@@ -387,15 +364,12 @@ class FavoriteQuestion(models.Model):
def __unicode__(self):
return '[%s] favorited at %s' %(self.user, self.added_at)
-<<<<<<< HEAD:forum/models.py
-=======
class MarkedTag(models.Model):
TAG_MARK_REASONS = (('good',_('interesting')),('bad',_('ignored')))
tag = models.ForeignKey(Tag, related_name='user_selections')
user = models.ForeignKey(User, related_name='tag_selections')
reason = models.CharField(max_length=16, choices=TAG_MARK_REASONS)
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
class QuestionRevision(models.Model):
"""A revision of a Question."""
question = models.ForeignKey(Question, related_name='revisions')
@@ -499,8 +473,6 @@ class Answer(models.Model):
get_comments = get_object_comments
get_last_update_info = post_get_last_update_info
-<<<<<<< HEAD:forum/models.py
-=======
def save(self,**kwargs):
super(Answer,self).save(**kwargs)
try:
@@ -508,7 +480,6 @@ class Answer(models.Model):
except Exception:
logging.debug('problem pinging google did you register you sitemap with google?')
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
def get_user_vote(self, user):
votes = self.votes.filter(user=user)
if votes.count() > 0:
@@ -523,11 +494,7 @@ class Answer(models.Model):
return self.question.title
def get_absolute_url(self):
-<<<<<<< HEAD:forum/models.py
- return '%s%s#%s' % (reverse('question', args=[self.question.id]), slugify(self.question.title), self.id)
-=======
return '%s%s#%s' % (reverse('question', args=[self.question.id]), django_urlquote(slugify(self.question.title)), self.id)
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
class Meta:
db_table = u'answer'
@@ -668,11 +635,7 @@ class Book(models.Model):
questions = models.ManyToManyField(Question, related_name='book', db_table='book_question')
def get_absolute_url(self):
-<<<<<<< HEAD:forum/models.py
- return reverse('book', args=[self.short_name])
-=======
return reverse('book', args=[django_urlquote(slugify(self.short_name))])
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
def __unicode__(self):
return self.title
@@ -762,8 +725,6 @@ User.add_to_class('date_of_birth', models.DateField(null=True, blank=True))
User.add_to_class('about', models.TextField(blank=True))
User.add_to_class('is_username_taken',classmethod(user_is_username_taken))
User.add_to_class('get_q_sel_email_feed_frequency',user_get_q_sel_email_feed_frequency)
-<<<<<<< HEAD:forum/models.py
-=======
User.add_to_class('hide_ignored_questions', models.BooleanField(default=False))
User.add_to_class('tag_filter_setting',
models.CharField(
@@ -772,7 +733,6 @@ User.add_to_class('tag_filter_setting',
default='ignored'
)
)
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/models.py
# custom signal
tags_updated = django.dispatch.Signal(providing_args=["question"])
@@ -827,10 +787,10 @@ def record_comment_event(instance, created, **kwargs):
from django.contrib.contenttypes.models import ContentType
question_type = ContentType.objects.get_for_model(Question)
question_type_id = question_type.id
- if (instance.content_type_id == question_type_id):
+ if (instance.content_type_id == question_type_id):
type = TYPE_ACTIVITY_COMMENT_QUESTION
else:
- type = TYPE_ACTIVITY_COMMENT_ANSWER
+ type=TYPE_ACTIVITY_COMMENT_ANSWER
activity = Activity(user=instance.user, active_at=instance.added_at, content_object=instance, activity_type=type)
activity.save()
diff --git a/forum/templatetags/extra_tags.py b/forum/templatetags/extra_tags.py
index 8ed79d3c..b2199284 100644
--- a/forum/templatetags/extra_tags.py
+++ b/forum/templatetags/extra_tags.py
@@ -251,11 +251,7 @@ def diff_date(date, limen=2):
return _('2 days ago')
elif days == 1:
return _('yesterday')
-<<<<<<< HEAD:forum/templatetags/extra_tags.py
- elif minutes > 60:
-=======
elif minutes >= 60:
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/templatetags/extra_tags.py
return ungettext('%(hr)d hour ago','%(hr)d hours ago',hours) % {'hr':hours}
else:
return ungettext('%(min)d min ago','%(min)d mins ago',minutes) % {'min':minutes}
@@ -336,13 +332,8 @@ class BlockResourceNode(template.Node):
for item in self.items:
bit = item.render(context)
out += bit
-<<<<<<< HEAD:forum/templatetags/extra_tags.py
- out = out.replace(' ','')
- return os.path.normpath(out) + '?v=%d' % settings.RESOURCE_REVISION
-=======
out = os.path.normpath(out) + '?v=%d' % settings.RESOURCE_REVISION
return out.replace(' ','')
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:forum/templatetags/extra_tags.py
@register.tag(name='blockresource')
def blockresource(parser,token):
diff --git a/forum/views.py b/forum/views.py
index 296745f9..65b80d0e 100644
--- a/forum/views.py
+++ b/forum/views.py
@@ -1,11 +1,6 @@
# encoding:utf-8
-import os.path
-import time, datetime, calendar, random
-import logging
-from urllib import quote, unquote
+import calendar
from django.conf import settings
-from django.core.files.storage import default_storage
-from django.shortcuts import render_to_response, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, Http404
from django.core.paginator import Paginator, EmptyPage, InvalidPage
@@ -25,12 +20,17 @@ from django.core.exceptions import PermissionDenied
from utils.html import sanitize_html
from utils.decorators import ajax_method, ajax_login_required
from markdown2 import Markdown
-#from lxml.html.diff import htmldiff
+import os.path
+import random
+import time
+
+import datetime
+from forum import auth
+from forum.auth import *
+from forum.const import *
from forum.diff import textDiff as htmldiff
from forum.forms import *
from forum.models import *
-from forum.auth import *
-from forum.const import *
from forum.user import *
from forum import auth
from django_authopenid.util import get_next_url
@@ -162,10 +162,8 @@ def questions(request, tagname=None, unanswered=False):
# template file
# "questions.html" or maybe index.html in the future
template_file = "questions.html"
- # Set flag to False by default. If it is equal to True, then need to be saved.
- pagesize_changed = False
# get pagesize from session, if failed then get default value
- pagesize = request.session.get("pagesize",10)
+ pagesize = request.session.get("pagesize", 10)
try:
page = int(request.GET.get('page', '1'))
except ValueError:
@@ -277,12 +275,12 @@ def create_new_answer( question=None, author=None,\
#create answer
answer = Answer(
- question = question,
- author = author,
- added_at = added_at,
- wiki = wiki,
- html = html
- )
+ question=question,
+ author=author,
+ added_at=added_at,
+ wiki=wiki,
+ html=html
+ )
if answer.wiki:
answer.last_edited_by = answer.author
answer.last_edited_at = added_at
@@ -298,13 +296,13 @@ def create_new_answer( question=None, author=None,\
#update revision
AnswerRevision.objects.create(
- answer = answer,
- revision = 1,
- author = author,
- revised_at = added_at,
- summary = CONST['default_version'],
- text = text
- )
+ answer=answer,
+ revision=1,
+ author=author,
+ revised_at=added_at,
+ summary=CONST['default_version'],
+ text=text
+ )
#set notification/delete
if email_notify:
@@ -317,24 +315,24 @@ def create_new_answer( question=None, author=None,\
except:
pass
-def create_new_question(title=None,author=None,added_at=None,
- wiki=False,tagnames=None,summary=None,
+def create_new_question(title=None, author=None, added_at=None,
+ wiki=False, tagnames=None, summary=None,
text=None):
"""this is not a view
and maybe should become one of the methods on Question object?
"""
html = sanitize_html(markdowner.convert(text))
question = Question(
- title = title,
- author = author,
- added_at = added_at,
- last_activity_at = added_at,
- last_activity_by = author,
- wiki = wiki,
- tagnames = tagnames,
- html = html,
- summary = summary
- )
+ title=title,
+ author=author,
+ added_at=added_at,
+ last_activity_at=added_at,
+ last_activity_by=author,
+ wiki=wiki,
+ tagnames=tagnames,
+ html=html,
+ summary=summary
+ )
if question.wiki:
question.last_edited_by = question.author
question.last_edited_at = added_at
@@ -344,19 +342,19 @@ def create_new_question(title=None,author=None,added_at=None,
# create the first revision
QuestionRevision.objects.create(
- question = question,
- revision = 1,
- title = question.title,
- author = author,
- revised_at = added_at,
- tagnames = question.tagnames,
- summary = CONST['default_version'],
- text = text
- )
+ question=question,
+ revision=1,
+ title=question.title,
+ author=author,
+ revised_at=added_at,
+ tagnames=question.tagnames,
+ summary=CONST['default_version'],
+ text=text
+ )
return question
#TODO: allow anynomus user to ask question by providing email and username.
-#@login_required
+@login_required
def ask(request):
if request.method == "POST":
form = AskForm(request.POST)
@@ -374,29 +372,28 @@ def ask(request):
author = request.user
question = create_new_question(
- title = title,
- author = author,
- added_at = added_at,
- wiki = wiki,
- tagnames = tagnames,
- summary = summary,
- text = text
- )
-
+ title=title,
+ author=author,
+ added_at=added_at,
+ wiki=wiki,
+ tagnames=tagnames,
+ summary=summary,
+ text=text
+ )
return HttpResponseRedirect(question.get_absolute_url())
else:
request.session.flush()
session_key = request.session.session_key
question = AnonymousQuestion(
- session_key = session_key,
- title = title,
- tagnames = tagnames,
- wiki = wiki,
- text = text,
- summary = summary,
- added_at = added_at,
- ip_addr = request.META['REMOTE_ADDR'],
- )
+ session_key=session_key,
+ title=title,
+ tagnames=tagnames,
+ wiki=wiki,
+ text=text,
+ summary=summary,
+ added_at=added_at,
+ ip_addr=request.META['REMOTE_ADDR'],
+ )
question.save()
return HttpResponseRedirect(reverse('user_signin_new_question'))
else:
@@ -438,8 +435,8 @@ def question(request, id):
question = get_object_or_404(Question, id=id)
if question.deleted and not can_view_deleted_post(request.user, question):
raise Http404
- answer_form = AnswerForm(question,request.user)
- answers = Answer.objects.get_answers_from_question(question, request.user)
+ answer_form = AnswerForm(question, request.user)
+ answers = Answer.objects.get_answers_from_question(question, request.user, orderby)
answers = answers.select_related(depth=1)
favorited = question.has_favorite_by_user(request.user)
@@ -451,9 +448,8 @@ def question(request, id):
question_vote = question_vote[0]
user_answer_votes = {}
- for answer in answers:
- vote = answer.get_user_vote(request.user)
- if vote is not None and not user_answer_votes.has_key(answer.id):
+ for vote in question.get_user_votes_in_answers(request.user):
+ if not user_answer_votes.has_key(vote.object_id):
vote_value = -1
if vote.is_upvote():
vote_value = 1
@@ -505,28 +501,28 @@ def question(request, id):
question_view.save()
return render_to_response('question.html', {
- "question" : question,
- "question_vote" : question_vote,
- "question_comment_count":question.comments.count(),
- "answer" : answer_form,
- "answers" : page_objects.object_list,
- "user_answer_votes": user_answer_votes,
- "tags" : question.tags.all(),
- "tab_id" : view_id,
- "favorited" : favorited,
- "similar_questions" : Question.objects.get_similar_questions(question),
- "context" : {
- 'is_paginated' : True,
- 'pages': objects_list.num_pages,
- 'page': page,
- 'has_previous': page_objects.has_previous(),
- 'has_next': page_objects.has_next(),
- 'previous': page_objects.previous_page_number(),
- 'next': page_objects.next_page_number(),
- 'base_url' : request.path + '?sort=%s&' % view_id,
- 'extend_url' : "#sort-top"
- }
- }, context_instance=RequestContext(request))
+ "question": question,
+ "question_vote": question_vote,
+ "question_comment_count":question.comments.count(),
+ "answer": answer_form,
+ "answers": page_objects.object_list,
+ "user_answer_votes": user_answer_votes,
+ "tags": question.tags.all(),
+ "tab_id": view_id,
+ "favorited": favorited,
+ "similar_questions": Question.objects.get_similar_questions(question),
+ "context": {
+ 'is_paginated': True,
+ 'pages': objects_list.num_pages,
+ 'page': page,
+ 'has_previous': page_objects.has_previous(),
+ 'has_next': page_objects.has_next(),
+ 'previous': page_objects.previous_page_number(),
+ 'next': page_objects.next_page_number(),
+ 'base_url': request.path + '?sort=%s&' % view_id,
+ 'extend_url': "#sort-top"
+ }
+ }, context_instance=RequestContext(request))
@login_required
def close(request, id):
@@ -546,9 +542,9 @@ def close(request, id):
else:
form = CloseForm()
return render_to_response('close.html', {
- 'form' : form,
- 'question' : question,
- }, context_instance=RequestContext(request))
+ 'form': form,
+ 'question': question,
+ }, context_instance=RequestContext(request))
@login_required
def reopen(request, id):
@@ -556,14 +552,14 @@ def reopen(request, id):
# open question
if not can_reopen_question(request.user, question):
return HttpResponse('Permission denied.')
- if request.method == 'POST' :
+ if request.method == 'POST':
Question.objects.filter(id=question.id).update(closed=False,
- closed_by=None, closed_at=None, close_reason=None)
+ closed_by=None, closed_at=None, close_reason=None)
return HttpResponseRedirect(question.get_absolute_url())
else:
return render_to_response('reopen.html', {
- 'question' : question,
- }, context_instance=RequestContext(request))
+ 'question': question,
+ }, context_instance=RequestContext(request))
@login_required
def edit_question(request, id):
@@ -586,25 +582,25 @@ def _retag_question(request, question):
retagged_at = datetime.datetime.now()
# Update the Question itself
Question.objects.filter(id=question.id).update(
- tagnames = form.cleaned_data['tags'],
- last_edited_at = retagged_at,
- last_edited_by = request.user,
- last_activity_at = retagged_at,
- last_activity_by = request.user
- )
+ tagnames=form.cleaned_data['tags'],
+ last_edited_at=retagged_at,
+ last_edited_by=request.user,
+ last_activity_at=retagged_at,
+ last_activity_by=request.user
+ )
# Update the Question's tag associations
tags_updated = Question.objects.update_tags(question,
- form.cleaned_data['tags'], request.user)
+ form.cleaned_data['tags'], request.user)
# Create a new revision
QuestionRevision.objects.create(
- question = question,
- title = latest_revision.title,
- author = request.user,
- revised_at = retagged_at,
- tagnames = form.cleaned_data['tags'],
- summary = CONST['retagged'],
- text = latest_revision.text
- )
+ question=question,
+ title=latest_revision.title,
+ author=request.user,
+ revised_at=retagged_at,
+ tagnames=form.cleaned_data['tags'],
+ summary=CONST['retagged'],
+ text=latest_revision.text
+ )
# send tags updated singal
tags_updated.send(sender=question.__class__, question=question)
@@ -612,10 +608,10 @@ def _retag_question(request, question):
else:
form = RetagQuestionForm(question)
return render_to_response('question_retag.html', {
- 'question': question,
- 'form' : form,
- 'tags' : _get_tags_cache_json(),
- }, context_instance=RequestContext(request))
+ 'question': question,
+ 'form': form,
+ 'tags': _get_tags_cache_json(),
+ }, context_instance=RequestContext(request))
def _edit_question(request, question):
latest_revision = question.get_latest_revision()
@@ -627,8 +623,8 @@ def _edit_question(request, question):
if revision_form.is_valid():
# Replace with those from the selected revision
form = EditQuestionForm(question,
- QuestionRevision.objects.get(question=question,
- revision=revision_form.cleaned_data['revision']))
+ QuestionRevision.objects.get(question=question,
+ revision=revision_form.cleaned_data['revision']))
else:
form = EditQuestionForm(question, latest_revision, request.POST)
else:
@@ -662,20 +658,20 @@ def _edit_question(request, question):
updated_fields['wikified_at'] = edited_at
Question.objects.filter(
- id=question.id).update(**updated_fields)
+ id=question.id).update(** updated_fields)
# Update the Question's tag associations
if tags_changed:
tags_updated = Question.objects.update_tags(
- question, form.cleaned_data['tags'], request.user)
+ question, form.cleaned_data['tags'], request.user)
# Create a new revision
revision = QuestionRevision(
- question = question,
- title = form.cleaned_data['title'],
- author = request.user,
- revised_at = edited_at,
- tagnames = form.cleaned_data['tags'],
- text = form.cleaned_data['text'],
- )
+ question=question,
+ title=form.cleaned_data['title'],
+ author=request.user,
+ revised_at=edited_at,
+ tagnames=form.cleaned_data['tags'],
+ text=form.cleaned_data['text'],
+ )
if form.cleaned_data['summary']:
revision.summary = form.cleaned_data['summary']
else:
@@ -688,11 +684,11 @@ def _edit_question(request, question):
revision_form = RevisionForm(question, latest_revision)
form = EditQuestionForm(question, latest_revision)
return render_to_response('question_edit.html', {
- 'question': question,
- 'revision_form': revision_form,
- 'form' : form,
- 'tags' : _get_tags_cache_json()
- }, context_instance=RequestContext(request))
+ 'question': question,
+ 'revision_form': revision_form,
+ 'form': form,
+ 'tags': _get_tags_cache_json()
+ }, context_instance=RequestContext(request))
@login_required
@@ -726,7 +722,7 @@ def edit_answer(request, id):
'last_edited_by': request.user,
'html': html,
}
- Answer.objects.filter(id=answer.id).update(**updated_fields)
+ Answer.objects.filter(id=answer.id).update(** updated_fields)
revision = AnswerRevision(
answer=answer,
@@ -758,7 +754,6 @@ def edit_answer(request, id):
QUESTION_REVISION_TEMPLATE = ('<h1>%(title)s</h1>\n'
'<div class="text">%(html)s</div>\n'
'<div class="tags">%(tags)s</div>')
-
def question_revisions(request, id):
post = get_object_or_404(Question, id=id)
revisions = list(post.revisions.all())
@@ -768,7 +763,7 @@ def question_revisions(request, id):
'title': revision.title,
'html': sanitize_html(markdowner.convert(revision.text)),
'tags': ' '.join(['<a class="post-tag">%s</a>' % tag
- for tag in revision.tagnames.split(' ')]),
+ for tag in revision.tagnames.split(' ')]),
}
if i > 0:
revisions[i].diff = htmldiff(revisions[i-1].html, revision.html)
@@ -804,6 +799,7 @@ def answer_revisions(request, id):
'revisions': revisions,
}, context_instance=RequestContext(request))
+@login_required
def answer(request, id):
question = get_object_or_404(Question, id=id)
if request.method == "POST":
@@ -853,11 +849,11 @@ def tags(request):
if stag != '':
objects_list = Paginator(Tag.objects.filter(deleted=False).exclude(used_count=0).extra(where=['name like %s'], params=['%' + stag + '%']), DEFAULT_PAGE_SIZE)
else:
- if sortby == "name":
- objects_list = Paginator(Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("name"), DEFAULT_PAGE_SIZE)
+ if sortby == "used":
+ sortby = "-used_count"
else:
- objects_list = Paginator(Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("-used_count"), DEFAULT_PAGE_SIZE)
-
+ sortby = "name"
+ objects_list = Paginator(Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by(sortby), DEFAULT_PAGE_SIZE)
try:
tags = objects_list.page(page)
except (EmptyPage, InvalidPage):
@@ -924,9 +920,9 @@ def vote(request, id):
response_data = {
"allowed": 1,
"success": 1,
- "status" : 0,
- "count" : 0,
- "message" : ''
+ "status": 0,
+ "count": 0,
+ "message": ''
}
def can_vote(vote_score, user):
@@ -1151,7 +1147,7 @@ def ajax_command(request):
def users(request):
is_paginated = True
sortby = request.GET.get('sort', 'reputation')
- suser = request.REQUEST.get('q', "")
+ suser = request.REQUEST.get('q', "")
try:
page = int(request.GET.get('page', '1'))
except ValueError:
@@ -1261,43 +1257,43 @@ def edit_user(request, id):
def user_stats(request, user_id, user_view):
user = get_object_or_404(User, id=user_id)
questions = Question.objects.extra(
- select={
- 'vote_count' : 'question.score',
- 'favorited_myself' : 'SELECT count(*) FROM favorite_question f WHERE f.user_id = %s AND f.question_id = question.id',
- 'la_user_id' : 'auth_user.id',
- 'la_username' : 'auth_user.username',
- 'la_user_gold' : 'auth_user.gold',
- 'la_user_silver' : 'auth_user.silver',
- 'la_user_bronze' : 'auth_user.bronze',
- 'la_user_reputation' : 'auth_user.reputation'
- },
- select_params=[user_id],
- tables=['question', 'auth_user'],
- where=['question.deleted = 0 AND question.author_id=%s AND question.last_activity_by_id = auth_user.id'],
- params=[user_id],
- order_by=['-vote_count', '-last_activity_at']
- ).values('vote_count',
- 'favorited_myself',
- 'id',
- 'title',
- 'author_id',
- 'added_at',
- 'answer_accepted',
- 'answer_count',
- 'comment_count',
- 'view_count',
- 'favourite_count',
- 'summary',
- 'tagnames',
- 'vote_up_count',
- 'vote_down_count',
- 'last_activity_at',
- 'la_user_id',
- 'la_username',
- 'la_user_gold',
- 'la_user_silver',
- 'la_user_bronze',
- 'la_user_reputation')[:100]
+ select={
+ 'vote_count': 'question.score',
+ 'favorited_myself': 'SELECT count(*) FROM favorite_question f WHERE f.user_id = %s AND f.question_id = question.id',
+ 'la_user_id': 'auth_user.id',
+ 'la_username': 'auth_user.username',
+ 'la_user_gold': 'auth_user.gold',
+ 'la_user_silver': 'auth_user.silver',
+ 'la_user_bronze': 'auth_user.bronze',
+ 'la_user_reputation': 'auth_user.reputation'
+ },
+ select_params=[user_id],
+ tables=['question', 'auth_user'],
+ where=['question.deleted = 0 AND question.author_id=%s AND question.last_activity_by_id = auth_user.id'],
+ params=[user_id],
+ order_by=['-vote_count', '-last_activity_at']
+ ).values('vote_count',
+ 'favorited_myself',
+ 'id',
+ 'title',
+ 'author_id',
+ 'added_at',
+ 'answer_accepted',
+ 'answer_count',
+ 'comment_count',
+ 'view_count',
+ 'favourite_count',
+ 'summary',
+ 'tagnames',
+ 'vote_up_count',
+ 'vote_down_count',
+ 'last_activity_at',
+ 'la_user_id',
+ 'la_username',
+ 'la_user_gold',
+ 'la_user_silver',
+ 'la_user_bronze',
+ 'la_user_reputation')[:100]
answered_questions = Question.objects.extra(
select={
@@ -1616,30 +1612,30 @@ def user_recent(request, user_id, user_view):
)
if len(accept_answers) > 0:
accept_answers = [(Event(q['added_at'], q['activity_type'], q['title'], '', '0', \
- q['question_id'])) for q in accept_answers]
+ q['question_id'])) for q in accept_answers]
activities.extend(accept_answers)
#award history
awards = Activity.objects.extra(
- select={
- 'badge_id' : 'badge.id',
- 'awarded_at': 'award.awarded_at',
- 'activity_type' : 'activity.activity_type'
- },
- tables=['activity', 'award', 'badge'],
- where=['activity.user_id = award.user_id AND activity.user_id = %s AND '+
- 'award.badge_id=badge.id AND activity.object_id=award.id AND activity.activity_type=%s'],
- params=[user_id, TYPE_ACTIVITY_PRIZE],
- order_by=['-activity.active_at']
- ).values(
- 'badge_id',
- 'awarded_at',
- 'activity_type'
- )
+ select={
+ 'badge_id': 'badge.id',
+ 'awarded_at': 'award.awarded_at',
+ 'activity_type': 'activity.activity_type'
+ },
+ tables=['activity', 'award', 'badge'],
+ where=['activity.user_id = award.user_id AND activity.user_id = %s AND ' +
+ 'award.badge_id=badge.id AND activity.object_id=award.id AND activity.activity_type=%s'],
+ params=[user_id, TYPE_ACTIVITY_PRIZE],
+ order_by=['-activity.active_at']
+ ).values(
+ 'badge_id',
+ 'awarded_at',
+ 'activity_type'
+ )
if len(awards) > 0:
awards = [(AwardEvent(q['awarded_at'], q['activity_type'], q['badge_id'])) for q in awards]
activities.extend(awards)
- activities.sort(lambda x,y: cmp(y.time, x.time))
+ activities.sort(lambda x, y: cmp(y.time, x.time))
return render_to_response(user_view.template_file,{
"tab_name" : user_view.id,
@@ -1696,7 +1692,7 @@ def user_responses(request, user_id, user_view):
if len(answers) > 0:
answers = [(Response(TYPE_RESPONSE['QUESTION_ANSWERED'], a['title'], a['question_id'],
- a['answer_id'], a['added_at'], a['username'], a['user_id'], a['html'])) for a in answers]
+ a['answer_id'], a['added_at'], a['username'], a['user_id'], a['html'])) for a in answers]
responses.extend(answers)
@@ -1726,83 +1722,83 @@ def user_responses(request, user_id, user_view):
if len(comments) > 0:
comments = [(Response(TYPE_RESPONSE['QUESTION_COMMENTED'], c['title'], c['question_id'],
- '', c['added_at'], c['username'], c['user_id'], c['comment'])) for c in comments]
+ '', c['added_at'], c['username'], c['user_id'], c['comment'])) for c in comments]
responses.extend(comments)
# answer comments
comments = Comment.objects.extra(
- select={
- 'title' : 'question.title',
- 'question_id' : 'question.id',
- 'answer_id' : 'answer.id',
- 'added_at' : 'comment.added_at',
- 'comment' : 'comment.comment',
- 'username' : 'auth_user.username',
- 'user_id' : 'auth_user.id'
- },
- tables=['answer', 'auth_user', 'comment', 'question'],
- where=['answer.deleted = 0 AND answer.author_id = %s AND comment.object_id=answer.id AND '+
- 'comment.content_type_id=%s AND comment.user_id <> %s AND comment.user_id = auth_user.id '+
- 'AND question.id = answer.question_id'],
- params=[user_id, answer_type_id, user_id],
- order_by=['-comment.added_at']
- ).values(
- 'title',
- 'question_id',
- 'answer_id',
- 'added_at',
- 'comment',
- 'username',
- 'user_id'
- )
+ select={
+ 'title': 'question.title',
+ 'question_id': 'question.id',
+ 'answer_id': 'answer.id',
+ 'added_at': 'comment.added_at',
+ 'comment': 'comment.comment',
+ 'username': 'auth_user.username',
+ 'user_id': 'auth_user.id'
+ },
+ tables=['answer', 'auth_user', 'comment', 'question'],
+ where=['answer.deleted = 0 AND answer.author_id = %s AND comment.object_id=answer.id AND ' +
+ 'comment.content_type_id=%s AND comment.user_id <> %s AND comment.user_id = auth_user.id ' +
+ 'AND question.id = answer.question_id'],
+ params=[user_id, answer_type_id, user_id],
+ order_by=['-comment.added_at']
+ ).values(
+ 'title',
+ 'question_id',
+ 'answer_id',
+ 'added_at',
+ 'comment',
+ 'username',
+ 'user_id'
+ )
if len(comments) > 0:
comments = [(Response(TYPE_RESPONSE['ANSWER_COMMENTED'], c['title'], c['question_id'],
- c['answer_id'], c['added_at'], c['username'], c['user_id'], c['comment'])) for c in comments]
+ c['answer_id'], c['added_at'], c['username'], c['user_id'], c['comment'])) for c in comments]
responses.extend(comments)
# answer has been accepted
answers = Answer.objects.extra(
- select={
- 'title' : 'question.title',
- 'question_id' : 'question.id',
- 'answer_id' : 'answer.id',
- 'added_at' : 'answer.accepted_at',
- 'html' : 'answer.html',
- 'username' : 'auth_user.username',
- 'user_id' : 'auth_user.id'
- },
- select_params=[user_id],
- tables=['answer', 'question', 'auth_user'],
- where=['answer.question_id = question.id AND answer.deleted=0 AND question.deleted = 0 AND '+
- 'answer.author_id = %s AND answer.accepted=1 AND question.author_id=auth_user.id'],
- params=[user_id],
- order_by=['-answer.id']
- ).values(
- 'title',
- 'question_id',
- 'answer_id',
- 'added_at',
- 'html',
- 'username',
- 'user_id'
- )
+ select={
+ 'title': 'question.title',
+ 'question_id': 'question.id',
+ 'answer_id': 'answer.id',
+ 'added_at': 'answer.accepted_at',
+ 'html': 'answer.html',
+ 'username': 'auth_user.username',
+ 'user_id': 'auth_user.id'
+ },
+ select_params=[user_id],
+ tables=['answer', 'question', 'auth_user'],
+ where=['answer.question_id = question.id AND answer.deleted=0 AND question.deleted = 0 AND ' +
+ 'answer.author_id = %s AND answer.accepted=1 AND question.author_id=auth_user.id'],
+ params=[user_id],
+ order_by=['-answer.id']
+ ).values(
+ 'title',
+ 'question_id',
+ 'answer_id',
+ 'added_at',
+ 'html',
+ 'username',
+ 'user_id'
+ )
if len(answers) > 0:
answers = [(Response(TYPE_RESPONSE['ANSWER_ACCEPTED'], a['title'], a['question_id'],
- a['answer_id'], a['added_at'], a['username'], a['user_id'], a['html'])) for a in answers]
+ a['answer_id'], a['added_at'], a['username'], a['user_id'], a['html'])) for a in answers]
responses.extend(answers)
# sort posts by time
- responses.sort(lambda x,y: cmp(y.time, x.time))
+ responses.sort(lambda x, y: cmp(y.time, x.time))
- return render_to_response(user_view.template_file,{
- "tab_name" : user_view.id,
- "tab_description" : user_view.tab_description,
- "page_title" : user_view.page_title,
- "view_user" : user,
- "responses" : responses[:user_view.data_size],
+ return render_to_response(user_view.template_file, {
+ "tab_name": user_view.id,
+ "tab_description": user_view.tab_description,
+ "page_title": user_view.page_title,
+ "view_user": user,
+ "responses": responses[:user_view.data_size],
- }, context_instance=RequestContext(request))
+ }, context_instance=RequestContext(request))
def user_votes(request, user_id, user_view):
user = get_object_or_404(User, id=user_id)
@@ -1810,61 +1806,61 @@ def user_votes(request, user_id, user_view):
raise Http404
votes = []
question_votes = Vote.objects.extra(
- select={
- 'title' : 'question.title',
- 'question_id' : 'question.id',
- 'answer_id' : 0,
- 'voted_at' : 'vote.voted_at',
- 'vote' : 'vote',
- },
- select_params=[user_id],
- tables=['vote', 'question', 'auth_user'],
- where=['vote.content_type_id = %s AND vote.user_id = %s AND vote.object_id = question.id '+
- 'AND vote.user_id=auth_user.id'],
- params=[question_type_id, user_id],
- order_by=['-vote.id']
- ).values(
- 'title',
- 'question_id',
- 'answer_id',
- 'voted_at',
- 'vote',
- )
+ select={
+ 'title': 'question.title',
+ 'question_id': 'question.id',
+ 'answer_id': 0,
+ 'voted_at': 'vote.voted_at',
+ 'vote': 'vote',
+ },
+ select_params=[user_id],
+ tables=['vote', 'question', 'auth_user'],
+ where=['vote.content_type_id = %s AND vote.user_id = %s AND vote.object_id = question.id ' +
+ 'AND vote.user_id=auth_user.id'],
+ params=[question_type_id, user_id],
+ order_by=['-vote.id']
+ ).values(
+ 'title',
+ 'question_id',
+ 'answer_id',
+ 'voted_at',
+ 'vote',
+ )
if(len(question_votes) > 0):
votes.extend(question_votes)
answer_votes = Vote.objects.extra(
- select={
- 'title' : 'question.title',
- 'question_id' : 'question.id',
- 'answer_id' : 'answer.id',
- 'voted_at' : 'vote.voted_at',
- 'vote' : 'vote',
- },
- select_params=[user_id],
- tables=['vote', 'answer', 'question', 'auth_user'],
- where=['vote.content_type_id = %s AND vote.user_id = %s AND vote.object_id = answer.id '+
- 'AND answer.question_id = question.id AND vote.user_id=auth_user.id'],
- params=[answer_type_id, user_id],
- order_by=['-vote.id']
- ).values(
- 'title',
- 'question_id',
- 'answer_id',
- 'voted_at',
- 'vote',
- )
+ select={
+ 'title': 'question.title',
+ 'question_id': 'question.id',
+ 'answer_id': 'answer.id',
+ 'voted_at': 'vote.voted_at',
+ 'vote': 'vote',
+ },
+ select_params=[user_id],
+ tables=['vote', 'answer', 'question', 'auth_user'],
+ where=['vote.content_type_id = %s AND vote.user_id = %s AND vote.object_id = answer.id ' +
+ 'AND answer.question_id = question.id AND vote.user_id=auth_user.id'],
+ params=[answer_type_id, user_id],
+ order_by=['-vote.id']
+ ).values(
+ 'title',
+ 'question_id',
+ 'answer_id',
+ 'voted_at',
+ 'vote',
+ )
if(len(answer_votes) > 0):
votes.extend(answer_votes)
- votes.sort(lambda x,y: cmp(y['voted_at'], x['voted_at']))
- return render_to_response(user_view.template_file,{
- "tab_name" : user_view.id,
- "tab_description" : user_view.tab_description,
- "page_title" : user_view.page_title,
- "view_user" : user,
- "votes" : votes[:user_view.data_size]
+ votes.sort(lambda x, y: cmp(y['voted_at'], x['voted_at']))
+ return render_to_response(user_view.template_file, {
+ "tab_name": user_view.id,
+ "tab_description": user_view.tab_description,
+ "page_title": user_view.page_title,
+ "view_user": user,
+ "votes": votes[:user_view.data_size]
- }, context_instance=RequestContext(request))
+ }, context_instance=RequestContext(request))
def user_reputation(request, user_id, user_view):
user = get_object_or_404(User, id=user_id)
@@ -1909,52 +1905,52 @@ def user_reputation(request, user_id, user_view):
def user_favorites(request, user_id, user_view):
user = get_object_or_404(User, id=user_id)
questions = Question.objects.extra(
- select={
- 'vote_count' : 'question.vote_up_count + question.vote_down_count',
- 'favorited_myself' : 'SELECT count(*) FROM favorite_question f WHERE f.user_id = %s '+
- 'AND f.question_id = question.id',
- 'la_user_id' : 'auth_user.id',
- 'la_username' : 'auth_user.username',
- 'la_user_gold' : 'auth_user.gold',
- 'la_user_silver' : 'auth_user.silver',
- 'la_user_bronze' : 'auth_user.bronze',
- 'la_user_reputation' : 'auth_user.reputation'
- },
- select_params=[user_id],
- tables=['question', 'auth_user', 'favorite_question'],
- where=['question.deleted = 0 AND question.last_activity_by_id = auth_user.id '+
- 'AND favorite_question.question_id = question.id AND favorite_question.user_id = %s'],
- params=[user_id],
- order_by=['-vote_count', '-question.id']
- ).values('vote_count',
- 'favorited_myself',
- 'id',
- 'title',
- 'author_id',
- 'added_at',
- 'answer_accepted',
- 'answer_count',
- 'comment_count',
- 'view_count',
- 'favourite_count',
- 'summary',
- 'tagnames',
- 'vote_up_count',
- 'vote_down_count',
- 'last_activity_at',
- 'la_user_id',
- 'la_username',
- 'la_user_gold',
- 'la_user_silver',
- 'la_user_bronze',
- 'la_user_reputation')
- return render_to_response(user_view.template_file,{
- "tab_name" : user_view.id,
- "tab_description" : user_view.tab_description,
- "page_title" : user_view.page_title,
- "questions" : questions[:user_view.data_size],
- "view_user" : user
- }, context_instance=RequestContext(request))
+ select={
+ 'vote_count': 'question.vote_up_count + question.vote_down_count',
+ 'favorited_myself': 'SELECT count(*) FROM favorite_question f WHERE f.user_id = %s ' +
+ 'AND f.question_id = question.id',
+ 'la_user_id': 'auth_user.id',
+ 'la_username': 'auth_user.username',
+ 'la_user_gold': 'auth_user.gold',
+ 'la_user_silver': 'auth_user.silver',
+ 'la_user_bronze': 'auth_user.bronze',
+ 'la_user_reputation': 'auth_user.reputation'
+ },
+ select_params=[user_id],
+ tables=['question', 'auth_user', 'favorite_question'],
+ where=['question.deleted = 0 AND question.last_activity_by_id = auth_user.id ' +
+ 'AND favorite_question.question_id = question.id AND favorite_question.user_id = %s'],
+ params=[user_id],
+ order_by=['-vote_count', '-question.id']
+ ).values('vote_count',
+ 'favorited_myself',
+ 'id',
+ 'title',
+ 'author_id',
+ 'added_at',
+ 'answer_accepted',
+ 'answer_count',
+ 'comment_count',
+ 'view_count',
+ 'favourite_count',
+ 'summary',
+ 'tagnames',
+ 'vote_up_count',
+ 'vote_down_count',
+ 'last_activity_at',
+ 'la_user_id',
+ 'la_username',
+ 'la_user_gold',
+ 'la_user_silver',
+ 'la_user_bronze',
+ 'la_user_reputation')
+ return render_to_response(user_view.template_file, {
+ "tab_name": user_view.id,
+ "tab_description": user_view.tab_description,
+ "page_title": user_view.page_title,
+ "questions": questions[:user_view.data_size],
+ "view_user": user
+ }, context_instance=RequestContext(request))
def user_email_subscriptions(request, user_id, user_view):
user = get_object_or_404(User, id=user_id)
@@ -2084,21 +2080,21 @@ def badges(request):
def badge(request, id):
badge = get_object_or_404(Badge, id=id)
awards = Award.objects.extra(
- select={'id': 'auth_user.id',
- 'name': 'auth_user.username',
- 'rep':'auth_user.reputation',
- 'gold': 'auth_user.gold',
- 'silver': 'auth_user.silver',
- 'bronze': 'auth_user.bronze'},
- tables=['award', 'auth_user'],
- where=['badge_id=%s AND user_id=auth_user.id'],
- params=[id]
- ).values('id').distinct()
+ select={'id': 'auth_user.id',
+ 'name': 'auth_user.username',
+ 'rep':'auth_user.reputation',
+ 'gold': 'auth_user.gold',
+ 'silver': 'auth_user.silver',
+ 'bronze': 'auth_user.bronze'},
+ tables=['award', 'auth_user'],
+ where=['badge_id=%s AND user_id=auth_user.id'],
+ params=[id]
+ ).values('id').distinct()
return render_to_response('badge.html', {
- 'awards' : awards,
- 'badge' : badge,
- }, context_instance=RequestContext(request))
+ 'awards': awards,
+ 'badge': badge,
+ }, context_instance=RequestContext(request))
def read_message(request):
if request.method == "POST":
@@ -2189,7 +2185,7 @@ def book(request, short_name, unanswered=False):
page = 1
view_id = request.GET.get('sort', None)
- view_dic = {"latest":"-added_at", "active":"-last_activity_at", "hottest":"-answer_count", "mostvoted":"-score" }
+ view_dic = {"latest":"-added_at", "active":"-last_activity_at", "hottest":"-answer_count", "mostvoted":"-score"}
try:
orderby = view_dic[view_id]
except KeyError:
@@ -2210,22 +2206,22 @@ def book(request, short_name, unanswered=False):
questions = objects_list.page(page)
return render_to_response('book.html', {
- "book" : book,
- "author_info" : author_info,
- "author_rss" : author_rss,
- "questions" : questions,
- "context" : {
- 'is_paginated' : True,
- 'pages': objects_list.num_pages,
- 'page': page,
- 'has_previous': questions.has_previous(),
- 'has_next': questions.has_next(),
- 'previous': questions.previous_page_number(),
- 'next': questions.next_page_number(),
- 'base_url' : request.path + '?sort=%s&' % view_id,
- 'pagesize' : user_page_size
- }
- }, context_instance=RequestContext(request))
+ "book": book,
+ "author_info": author_info,
+ "author_rss": author_rss,
+ "questions": questions,
+ "context": {
+ 'is_paginated': True,
+ 'pages': objects_list.num_pages,
+ 'page': page,
+ 'has_previous': questions.has_previous(),
+ 'has_next': questions.has_next(),
+ 'previous': questions.previous_page_number(),
+ 'next': questions.next_page_number(),
+ 'base_url': request.path + '?sort=%s&' % view_id,
+ 'pagesize': user_page_size
+ }
+ }, context_instance=RequestContext(request))
@login_required
def ask_book(request, short_name):
@@ -2235,16 +2231,16 @@ def ask_book(request, short_name):
added_at = datetime.datetime.now()
html = sanitize_html(markdowner.convert(form.cleaned_data['text']))
question = Question(
- title = strip_tags(form.cleaned_data['title']),
- author = request.user,
- added_at = added_at,
- last_activity_at = added_at,
- last_activity_by = request.user,
- wiki = form.cleaned_data['wiki'],
- tagnames = form.cleaned_data['tags'].strip(),
- html = html,
- summary = strip_tags(html)[:120]
- )
+ title=strip_tags(form.cleaned_data['title']),
+ author=request.user,
+ added_at=added_at,
+ last_activity_at=added_at,
+ last_activity_by=request.user,
+ wiki=form.cleaned_data['wiki'],
+ tagnames=form.cleaned_data['tags'].strip(),
+ html=html,
+ summary=strip_tags(html)[:120]
+ )
if question.wiki:
question.last_edited_by = question.author
question.last_edited_at = added_at
@@ -2254,15 +2250,15 @@ def ask_book(request, short_name):
# create the first revision
QuestionRevision.objects.create(
- question = question,
- revision = 1,
- title = question.title,
- author = request.user,
- revised_at = added_at,
- tagnames = question.tagnames,
- summary = CONST['default_version'],
- text = form.cleaned_data['text']
- )
+ question=question,
+ revision=1,
+ title=question.title,
+ author=request.user,
+ revised_at=added_at,
+ tagnames=question.tagnames,
+ summary=CONST['default_version'],
+ text=form.cleaned_data['text']
+ )
books = Book.objects.extra(where=['short_name = %s'], params=[short_name])
match_count = len(books)
@@ -2331,7 +2327,7 @@ def search(request):
user.save()
view_id = request.GET.get('sort', None)
- view_dic = {"latest":"-added_at", "active":"-last_activity_at", "hottest":"-answer_count", "mostvoted":"-score" }
+ view_dic = {"latest":"-added_at", "active":"-last_activity_at", "hottest":"-answer_count", "mostvoted":"-score"}
try:
orderby = view_dic[view_id]
except KeyError:
@@ -2360,25 +2356,25 @@ def search(request):
related_tags.append(tag)
return render_to_response(template_file, {
- "questions" : questions,
- "tab_id" : view_id,
- "questions_count" : objects_list.count,
- "tags" : related_tags,
- "searchtag" : None,
- "searchtitle" : keywords,
- "keywords" : keywords,
- "is_unanswered" : False,
- "context" : {
- 'is_paginated' : True,
- 'pages': objects_list.num_pages,
- 'page': page,
- 'has_previous': questions.has_previous(),
- 'has_next': questions.has_next(),
- 'previous': questions.previous_page_number(),
- 'next': questions.next_page_number(),
- 'base_url' : request.path + '?t=question&q=%s&sort=%s&' % (keywords, view_id),
- 'pagesize' : pagesize
- }}, context_instance=RequestContext(request))
+ "questions": questions,
+ "tab_id": view_id,
+ "questions_count": objects_list.count,
+ "tags": related_tags,
+ "searchtag": None,
+ "searchtitle": keywords,
+ "keywords": keywords,
+ "is_unanswered": False,
+ "context": {
+ 'is_paginated': True,
+ 'pages': objects_list.num_pages,
+ 'page': page,
+ 'has_previous': questions.has_previous(),
+ 'has_next': questions.has_next(),
+ 'previous': questions.previous_page_number(),
+ 'next': questions.next_page_number(),
+ 'base_url': request.path + '?t=question&q=%s&sort=%s&' % (keywords, view_id),
+ 'pagesize': pagesize
+ }}, context_instance=RequestContext(request))
else:
raise Http404
diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo
index fc7ebe14..2b514069 100644
--- a/locale/es/LC_MESSAGES/django.mo
+++ b/locale/es/LC_MESSAGES/django.mo
Binary files differ
diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po
index b528fcf2..83ff69bf 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -1,1179 +1,1453 @@
+# 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.
+#
+#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: \n"
+"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-12 15:53+0000\n"
-"PO-Revision-Date: \n"
-"Last-Translator: Bruno Sarlo <bsarlo@gmail.com>\n"
+"POT-Creation-Date: 2010-02-09 20:10+0000\n"
+"PO-Revision-Date: 2010-02-09 14:11-0600\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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 urls.py:25 forum/views.py:304 forum/views.py:698
-msgid "account/"
-msgstr "cuenta/"
-
-#: 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/"
+#: django_authopenid/forms.py:70
+msgid "choose a username"
+msgstr ""
-#: urls.py:39
-msgid "unanswered/"
-msgstr "sinrespuesta/"
+#: django_authopenid/forms.py:76
+msgid "user name is required"
+msgstr ""
-#: urls.py:41
-msgid "close/"
-msgstr "cerrar/"
+#: django_authopenid/forms.py:77
+msgid "sorry, this name is taken, please choose another"
+msgstr ""
-#: urls.py:42
-msgid "reopen/"
-msgstr "reabrir/"
+#: django_authopenid/forms.py:78
+msgid "sorry, this name is not allowed, please choose another"
+msgstr ""
-#: urls.py:43
-msgid "answer/"
-msgstr "respuesta/"
+#: django_authopenid/forms.py:79
+msgid "sorry, there is no user with this name"
+msgstr ""
-#: urls.py:44
-msgid "vote/"
-msgstr "votar/"
+#: django_authopenid/forms.py:80
+msgid "sorry, we have a serious error - user name is taken by several users"
+msgstr ""
-#: urls.py:47 urls.py:48 django_authopenid/urls.py:29
-msgid "delete/"
-msgstr "borrar/"
+#: django_authopenid/forms.py:81
+msgid "user name can only consist of letters, empty space and underscore"
+msgstr ""
-#: urls.py:50
-msgid "question/"
-msgstr "pregunta/"
+#: django_authopenid/forms.py:116
+msgid "your email address"
+msgstr ""
-#: urls.py:51 urls.py:52 forum/views.py:740 forum/views.py:2013
-msgid "tags/"
-msgstr "etiquetas/"
+#: django_authopenid/forms.py:117
+msgid "email address is required"
+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 "usuarios/"
+#: django_authopenid/forms.py:118
+msgid "please enter a valid email address"
+msgstr ""
-#: urls.py:56 urls.py:57
-msgid "badges/"
-msgstr "distinciones/"
+#: django_authopenid/forms.py:119
+msgid "this email is already used by someone else, please choose another"
+msgstr ""
-#: urls.py:58
-msgid "messages/"
-msgstr "mensajes/"
+#: django_authopenid/forms.py:163 django_authopenid/views.py:118
+msgid "i-names are not supported"
+msgstr ""
-#: urls.py:58
-msgid "markread/"
-msgstr "marcarleido/"
+#: django_authopenid/forms.py:219
+msgid "Account with this name already exists on the forum"
+msgstr ""
-#: urls.py:60
-msgid "nimda/"
-msgstr "administrador/"
+#: django_authopenid/forms.py:220
+msgid "can't have two logins to the same account yet, sorry."
+msgstr ""
-#: urls.py:62
-msgid "upload/"
-msgstr "subir/"
+#: django_authopenid/forms.py:242
+msgid "Please enter valid username and password (both are case-sensitive)."
+msgstr ""
-#: urls.py:63 urls.py:64 urls.py:65
-msgid "books/"
-msgstr "libros/"
+#: django_authopenid/forms.py:245 django_authopenid/forms.py:295
+msgid "This account is inactive."
+msgstr ""
-#: urls.py:66
-msgid "search/"
-msgstr "buscar/"
+#: django_authopenid/forms.py:247
+msgid "Login failed."
+msgstr ""
-#: django_authopenid/forms.py:67 django_authopenid/views.py:102
-msgid "i-names are not supported"
-msgstr "i-names no son soportados"
+#: django_authopenid/forms.py:249
+msgid "Please enter username and password"
+msgstr ""
-#: django_authopenid/forms.py:102
-msgid ""
-"Usernames can only contain letters, numbers and "
-"underscores"
+#: django_authopenid/forms.py:251
+msgid "Please enter your password"
msgstr ""
-"Los nombres de usuario solo pueden contener letras, números y guión bajo"
-#: django_authopenid/forms.py:109
-msgid ""
-"This username does not exist in our database. Please "
-"choose another."
+#: django_authopenid/forms.py:253
+msgid "Please enter user name"
msgstr ""
-"Este nombre de usuario no existe en nuestra base de datos. Por favor elija "
-"otro."
-#: django_authopenid/forms.py:126 django_authopenid/forms.py:233
+#: django_authopenid/forms.py:291
msgid ""
"Please enter a valid username and password. Note that "
"both fields are case-sensitive."
msgstr ""
-"Por favor ingrese un usuario y contraseña validos. Ambos campos son "
-"sensibles a mayúsculas y minúsculas."
-#: django_authopenid/forms.py:130 django_authopenid/forms.py:237
-msgid "This account is inactive."
-msgstr "Esta cuenta esta inactiva."
-
-#: django_authopenid/forms.py:158 django_authopenid/forms.py:210
-msgid "invalid user name"
-msgstr "nombre de usuario no valido"
-
-#: django_authopenid/forms.py:160
-msgid "sorry, this name can not be used, please try another"
+#: django_authopenid/forms.py:313
+msgid "choose password"
msgstr ""
-"perdón, pero este nombre de usuario no puede ser usado, intente con otro"
-#: django_authopenid/forms.py:162
-msgid "username too short"
-msgstr "nombre de usuario muy corto"
-
-#: django_authopenid/forms.py:170 django_authopenid/forms.py:171
-msgid "this name is already in use - please try anoter"
-msgstr "este nombre ya está tomado - por favor intente con otro"
+#: django_authopenid/forms.py:314
+msgid "password is required"
+msgstr ""
-#: django_authopenid/forms.py:185
-msgid ""
-"This email is already registered in our database. "
-"Please choose another."
+#: django_authopenid/forms.py:317
+msgid "retype password"
msgstr ""
-"Este email ya está registrado en nuestra base de datos. Por favor, intente "
-"con otro."
-#: django_authopenid/forms.py:216
-msgid ""
-"This username don't exist. Please choose another."
-msgstr "Este nombre de usuario no existe, por favor ingrese otro."
+#: django_authopenid/forms.py:318
+msgid "please, retype your password"
+msgstr ""
-#: django_authopenid/forms.py:255
-msgid "choose a username"
-msgstr "elija un nombre de usuario"
+#: django_authopenid/forms.py:319
+msgid "sorry, entered passwords did not match, please try again"
+msgstr ""
-#: django_authopenid/forms.py:257 templates/authopenid/signup.html:38
-msgid "your email address"
-msgstr "su email (correo electrónico)"
+#: django_authopenid/forms.py:344
+msgid "Current password"
+msgstr ""
-#: django_authopenid/forms.py:259 templates/authopenid/signup.html:39
-msgid "choose password"
-msgstr "elija una contraseña"
+#: django_authopenid/forms.py:346
+msgid "New password"
+msgstr ""
-#: django_authopenid/forms.py:261 templates/authopenid/signup.html:40
-msgid "retype password"
-msgstr "re-ingrese la contraseña"
+#: django_authopenid/forms.py:348
+msgid "Retype new password"
+msgstr ""
-#: django_authopenid/forms.py:335
+#: django_authopenid/forms.py:359
msgid ""
"Old password is incorrect. Please enter the correct "
"password."
-msgstr "La antigua contraseña es incorrecta. Por favor ingrese la correcta"
+msgstr ""
-#: django_authopenid/forms.py:347
+#: django_authopenid/forms.py:371
msgid "new passwords do not match"
-msgstr "la nueva contraseña no coincide"
+msgstr ""
-#: django_authopenid/forms.py:442
+#: django_authopenid/forms.py:435
+msgid "Your user name (<i>required</i>)"
+msgstr ""
+
+#: django_authopenid/forms.py:450
msgid "Incorrect username."
-msgstr "Nombre de usuario incorrecto"
+msgstr ""
-#: django_authopenid/urls.py:10 forum/views.py:304 forum/views.py:699
+#: django_authopenid/urls.py:9 django_authopenid/urls.py:10
+#: django_authopenid/urls.py:11 django_authopenid/urls.py:13 forum/urls.py:29
+msgid "signin/"
+msgstr ""
+
+#: django_authopenid/urls.py:10
msgid "newquestion/"
-msgstr "nuevapregunta/"
+msgstr ""
#: django_authopenid/urls.py:11
msgid "newanswer/"
-msgstr "respuesta-nueva/"
+msgstr ""
#: django_authopenid/urls.py:12
msgid "signout/"
-msgstr "salir/"
+msgstr ""
#: django_authopenid/urls.py:13
msgid "complete/"
-msgstr "completado/"
+msgstr ""
#: django_authopenid/urls.py:15
-msgid "register/"
-msgstr "registrarse/"
+msgid "external-login/"
+msgstr ""
#: django_authopenid/urls.py:16
+msgid "register/"
+msgstr ""
+
+#: django_authopenid/urls.py:17
msgid "signup/"
-msgstr "registrarse/"
+msgstr ""
-#: django_authopenid/urls.py:18
+#: django_authopenid/urls.py:19
msgid "sendpw/"
-msgstr "enviarcontrasena/"
+msgstr ""
-#: django_authopenid/urls.py:27
+#: django_authopenid/urls.py:20 django_authopenid/urls.py:24
+msgid "password/"
+msgstr ""
+
+#: django_authopenid/urls.py:20
+msgid "confirm/"
+msgstr ""
+
+#: django_authopenid/urls.py:23
+msgid "account_settings"
+msgstr ""
+
+#: django_authopenid/urls.py:25 django_authopenid/urls.py:26
+#: django_authopenid/urls.py:27 django_authopenid/urls.py:28
+msgid "email/"
+msgstr ""
+
+#: django_authopenid/urls.py:25
msgid "validate/"
msgstr ""
-#: django_authopenid/views.py:108
+#: django_authopenid/urls.py:26
+msgid "change/"
+msgstr ""
+
+#: django_authopenid/urls.py:27
+msgid "sendkey/"
+msgstr ""
+
+#: django_authopenid/urls.py:28
+msgid "verify/"
+msgstr ""
+
+#: django_authopenid/urls.py:29
+msgid "openid/"
+msgstr ""
+
+#: django_authopenid/urls.py:30 forum/urls.py:49 forum/urls.py:53
+msgid "delete/"
+msgstr ""
+
+#: django_authopenid/views.py:124
#, python-format
msgid "OpenID %(openid_url)s is invalid"
-msgstr "El OpenID %(openid_url)s no es valido"
+msgstr ""
-#: django_authopenid/views.py:418 django_authopenid/views.py:545
-msgid "Welcome"
-msgstr "Bienvenido"
+#: django_authopenid/views.py:532
+msgid "Welcome email subject line"
+msgstr ""
-#: django_authopenid/views.py:508
+#: django_authopenid/views.py:627
msgid "Password changed."
-msgstr "Contraseña modificada"
+msgstr ""
-#: 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:639 django_authopenid/views.py:645
+#, python-format
+msgid "your email needs to be validated see %(details_url)s"
+msgstr ""
+
+#: django_authopenid/views.py:666
+msgid "Email verification subject line"
+msgstr ""
+
+#: django_authopenid/views.py:752
+msgid "your email was not changed"
+msgstr ""
-#: django_authopenid/views.py:682 django_authopenid/views.py:834
+#: django_authopenid/views.py:799 django_authopenid/views.py:951
#, python-format
msgid "No OpenID %s found associated in our database"
-msgstr "El OpenID %s no esta asociada en nuestra base de datos"
+msgstr ""
-#: django_authopenid/views.py:686 django_authopenid/views.py:841
+#: django_authopenid/views.py:803 django_authopenid/views.py:958
#, 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"
+msgstr ""
-#: django_authopenid/views.py:694
+#: django_authopenid/views.py:811
msgid "Email Changed."
-msgstr "Email modificado"
+msgstr ""
-#: django_authopenid/views.py:769
+#: django_authopenid/views.py:886
msgid "This OpenID is already associated with another account."
-msgstr "Este OpenID ya está asociada a otra cuenta."
+msgstr ""
-#: django_authopenid/views.py:774
+#: django_authopenid/views.py:891
#, python-format
msgid "OpenID %s is now associated with your account."
-msgstr "El OpenID %s está ahora asociada con tu cuenta."
+msgstr ""
-#: django_authopenid/views.py:844
+#: django_authopenid/views.py:961
msgid "Account deleted."
-msgstr "Cuenta borrada."
+msgstr ""
-#: django_authopenid/views.py:884
+#: django_authopenid/views.py:1004
msgid "Request for new password"
-msgstr "Pedir nueva contraseña"
+msgstr ""
-#: 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:1017
+msgid "A new password and the activation link were sent to your email address."
+msgstr ""
-#: django_authopenid/views.py:927
+#: django_authopenid/views.py:1047
#, python-format
msgid ""
"Could not change password. Confirmation key '%s' is not "
"registered."
msgstr ""
-"No se ha podido modificar la contraseña. La clave de confirmación '%s' no "
-"está registrada"
-#: django_authopenid/views.py:936
+#: django_authopenid/views.py:1056
msgid ""
"Can not change password. User don't exist anymore in our "
"database."
msgstr ""
-"No se puede cambiar la contraseña. El usuario no existe más en nuestra base "
-"de datos."
-#: django_authopenid/views.py:945
+#: django_authopenid/views.py:1065
#, python-format
msgid "Password changed for %s. You may now sign in."
-msgstr "Contraseña cambiada por %s. Ahora puedes ingresar."
+msgstr ""
+
+#: forum/auth.py:484
+msgid "Your question and all of it's answers have been deleted"
+msgstr ""
+
+#: forum/auth.py:486
+msgid "Your question has been deleted"
+msgstr ""
+
+#: forum/auth.py:489
+msgid "The question and all of it's answers have been deleted"
+msgstr ""
+
+#: forum/auth.py:491
+msgid "The question has been deleted"
+msgstr ""
#: forum/const.py:8
msgid "duplicate question"
-msgstr "pregunta duplicada"
+msgstr ""
#: forum/const.py:9
-msgid "question if off-topic or not relevant"
-msgstr "pregunta esta fuera de tema o no es relevante"
+msgid "question is off-topic or not relevant"
+msgstr ""
#: forum/const.py:10
msgid "too subjective and argumentative"
-msgstr "demasiado subjetiva o argumentativa"
+msgstr ""
#: forum/const.py:11
msgid "is not an answer to the question"
-msgstr "no es una respuesta a la pregunta"
+msgstr ""
#: forum/const.py:12
msgid "the question is answered, right answer was accepted"
-msgstr "la pregunta esta respondida, se ha aceptado la respuesta correcta"
+msgstr ""
#: forum/const.py:13
msgid "problem is not reproducible or outdated"
-msgstr "el problema no es reproducible o caducó"
+msgstr ""
#: forum/const.py:15
msgid "question contains offensive inappropriate, or malicious remarks"
-msgstr "la pregunta contiene frases ofensivas, inapropiadas o maliciosas."
+msgstr ""
#: forum/const.py:16
msgid "spam or advertising"
-msgstr "spam o publicidad"
+msgstr ""
-#: forum/const.py:56
+#: forum/const.py:57
msgid "question"
-msgstr "pregunta"
+msgstr ""
-#: forum/const.py:57 templates/book.html:110
+#: forum/const.py:58 templates/book.html:110
msgid "answer"
-msgstr "respuesta"
+msgstr ""
-#: forum/const.py:58
+#: forum/const.py:59
msgid "commented question"
-msgstr "pregunta comentada"
+msgstr ""
-#: forum/const.py:59
+#: forum/const.py:60
msgid "commented answer"
-msgstr "respuesta comentada"
+msgstr ""
-#: forum/const.py:60
+#: forum/const.py:61
msgid "edited question"
-msgstr "pregunta editada"
+msgstr ""
-#: forum/const.py:61
+#: forum/const.py:62
msgid "edited answer"
-msgstr "respuesta editada"
+msgstr ""
-#: forum/const.py:62
+#: forum/const.py:63
msgid "received award"
-msgstr "premio recibido"
+msgstr ""
-#: forum/const.py:63
+#: forum/const.py:64
msgid "marked best answer"
-msgstr "marcada como mejor respuesta"
+msgstr ""
-#: forum/const.py:64
+#: forum/const.py:65
msgid "upvoted"
-msgstr "votada positivo"
+msgstr ""
-#: forum/const.py:65
+#: forum/const.py:66
msgid "downvoted"
-msgstr "votada negativo"
+msgstr ""
-#: forum/const.py:66
+#: forum/const.py:67
msgid "canceled vote"
-msgstr "voto cancelado"
+msgstr ""
-#: forum/const.py:67
+#: forum/const.py:68
msgid "deleted question"
-msgstr "pregunta borrada"
+msgstr ""
-#: forum/const.py:68
+#: forum/const.py:69
msgid "deleted answer"
-msgstr "respuesta borrada"
+msgstr ""
-#: forum/const.py:69
+#: forum/const.py:70
msgid "marked offensive"
-msgstr "marcada como ofensiva"
+msgstr ""
-#: forum/const.py:70
+#: forum/const.py:71
msgid "updated tags"
-msgstr "etiquetas actualizadas"
+msgstr ""
-#: forum/const.py:71
+#: forum/const.py:72
msgid "selected favorite"
-msgstr "seleccionada como favorita"
+msgstr ""
-#: forum/const.py:72
+#: forum/const.py:73
msgid "completed user profile"
-msgstr "completó perfil de usuario"
+msgstr ""
-#: forum/const.py:83
+#: forum/const.py:74
+msgid "email update sent to user"
+msgstr ""
+
+#: forum/const.py:85
msgid "[closed]"
-msgstr "[cerrada]"
+msgstr ""
-#: forum/const.py:84
+#: forum/const.py:86
msgid "[deleted]"
-msgstr "[borrada]"
+msgstr ""
-#: forum/const.py:85
+#: forum/const.py:87 forum/views.py:777 forum/views.py:796
msgid "initial version"
-msgstr "versión inicial"
+msgstr ""
-#: forum/const.py:86
+#: forum/const.py:88
msgid "retagged"
-msgstr "re-etiquetada"
+msgstr ""
+
+#: forum/const.py:92
+msgid "exclude ignored tags"
+msgstr ""
+
+#: forum/const.py:92
+msgid "allow only selected tags"
+msgstr ""
#: forum/feed.py:18
msgid " - "
-msgstr " - "
+msgstr ""
#: forum/feed.py:18
msgid "latest questions"
-msgstr "últimas preguntas"
+msgstr ""
-#: 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
+#: forum/feed.py:19 forum/urls.py:57
+msgid "question/"
+msgstr ""
+
+#: forum/forms.py:16 templates/answer_edit_tips.html:35
+#: templates/answer_edit_tips.html.py:39 templates/question_edit_tips.html:32
+#: templates/question_edit_tips.html:37
msgid "title"
-msgstr "título"
+msgstr ""
-#: forum/forms.py:15
+#: forum/forms.py:17
msgid "please enter a descriptive title for your question"
-msgstr "ingrese un título descriptivo para su pregunta"
+msgstr ""
-#: forum/forms.py:20
+#: forum/forms.py:22
msgid "title must be > 10 characters"
-msgstr "el título debe tener al menos 10 caracteres"
+msgstr ""
-#: forum/forms.py:29
+#: forum/forms.py:31
msgid "content"
-msgstr "contenido"
+msgstr ""
-#: forum/forms.py:35
+#: forum/forms.py:37
msgid "question content must be > 10 characters"
-msgstr "el contenido de la pregunta debe ser al menos de 10 caracteres"
+msgstr ""
-#: forum/forms.py:45 templates/header.html:30 templates/header.html.py:64
+#: forum/forms.py:47 templates/header.html:28 templates/header.html.py:62
msgid "tags"
-msgstr "etiquetas"
+msgstr ""
-#: forum/forms.py:47
+#: forum/forms.py:49
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
+#: forum/forms.py:56 templates/question_retag.html:39
msgid "tags are required"
-msgstr "las etiquetas son requeridas"
+msgstr ""
-#: forum/forms.py:58
+#: forum/forms.py:62
msgid "please use 5 tags or less"
-msgstr "por favor use 5 o menos etiquetas"
+msgstr ""
-#: forum/forms.py:61
+#: forum/forms.py:65
msgid "tags must be shorter than 20 characters"
-msgstr "las etiquetas deben ser menores a 20 caracteres"
+msgstr ""
-#: forum/forms.py:65
+#: forum/forms.py:69
msgid ""
"please use following characters in tags: letters 'a-z', numbers, and "
"characters '.-_#'"
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:209
-#: templates/question.html.py:395 templates/questions.html:58
-#: templates/questions.html.py:70 templates/unanswered.html:48
-#: templates/unanswered.html.py:60
+#: forum/forms.py:79 templates/index.html:62 templates/index.html.py:74
+#: templates/post_contributor_info.html:7
+#: templates/question_summary_list_roll.html:26
+#: templates/question_summary_list_roll.html:38 templates/questions.html:96
+#: templates/questions.html.py:108 templates/unanswered.html:51
+#: templates/unanswered.html.py:63
msgid "community wiki"
-msgstr "wiki de comunidad"
+msgstr ""
-#: forum/forms.py:76
+#: forum/forms.py:80
msgid ""
"if you choose community wiki option, the question and answer do not generate "
"points and name of author will not be shown"
msgstr ""
-"si marca la opción 'wiki de comunidad', la pregunta y respuestas no generan "
-"puntos y el nombre del autor no será mostrado"
-#: forum/forms.py:89
+#: forum/forms.py:96
msgid "update summary:"
-msgstr "resumen de modificación"
+msgstr ""
-#: forum/forms.py:90
+#: forum/forms.py:97
msgid ""
"enter a brief summary of your revision (e.g. fixed spelling, grammar, "
"improved style, this field is optional)"
msgstr ""
-"ingresa un breve resumen de tu revisión (ej. error ortográfico, gramática, "
-"mejoras de estilo. Este campo es opcional."
-#: forum/forms.py:175
+#: forum/forms.py:100
+msgid "Automatically accept user's contributions for the email updates"
+msgstr ""
+
+#: forum/forms.py:113
+msgid "Your name:"
+msgstr ""
+
+#: forum/forms.py:114
+msgid "Email (not shared with anyone):"
+msgstr ""
+
+#: forum/forms.py:115
+msgid "Your message:"
+msgstr ""
+
+#: forum/forms.py:198
msgid "this email does not have to be linked to gravatar"
-msgstr "este email no tiene porque estar asociado a un Gravatar"
+msgstr ""
-#: forum/forms.py:176
+#: forum/forms.py:199
+msgid "Screen name"
+msgstr ""
+
+#: forum/forms.py:200
msgid "Real name"
-msgstr "Nombre real"
+msgstr ""
-#: forum/forms.py:177
+#: forum/forms.py:201
msgid "Website"
-msgstr "Sitio Web"
+msgstr ""
-#: forum/forms.py:178
+#: forum/forms.py:202
msgid "Location"
-msgstr "Ubicación"
+msgstr ""
-#: forum/forms.py:179
+#: forum/forms.py:203
msgid "Date of birth"
-msgstr "Fecha de nacimiento"
+msgstr ""
-#: forum/forms.py:179
+#: forum/forms.py:203
msgid "will not be shown, used to calculate age, format: YYYY-MM-DD"
-msgstr "no será mostrado, usado para calcular la edad. Formato: YYY-MM-DD"
+msgstr ""
-#: forum/forms.py:180 templates/authopenid/settings.html:21
+#: forum/forms.py:204 templates/authopenid/settings.html:21
msgid "Profile"
-msgstr "Perfil"
+msgstr ""
-#: forum/forms.py:207 forum/forms.py:208
+#: forum/forms.py:232 forum/forms.py:233
msgid "this email has already been registered, please use another one"
-msgstr "este email ya ha sido registrado, por favor use otro"
+msgstr ""
+
+#: forum/forms.py:239
+msgid "Choose email tag filter"
+msgstr ""
+
+#: forum/forms.py:254 forum/forms.py:255
+msgid "weekly"
+msgstr ""
+
+#: forum/forms.py:254 forum/forms.py:255
+msgid "no email"
+msgstr ""
+
+#: forum/forms.py:255
+msgid "daily"
+msgstr ""
+
+#: forum/forms.py:270
+msgid "Asked by me"
+msgstr ""
+
+#: forum/forms.py:273
+msgid "Answered by me"
+msgstr ""
+
+#: forum/forms.py:276
+msgid "Individually selected"
+msgstr ""
+
+#: forum/forms.py:279
+msgid "Entire forum (tag filtered)"
+msgstr ""
+
+#: forum/models.py:52
+msgid "Entire forum"
+msgstr ""
+
+#: forum/models.py:53
+msgid "Questions that I asked"
+msgstr ""
+
+#: forum/models.py:54
+msgid "Questions that I answered"
+msgstr ""
-#: forum/models.py:246
+#: forum/models.py:55
+msgid "Individually selected questions"
+msgstr ""
+
+#: forum/models.py:58
+msgid "Weekly"
+msgstr ""
+
+#: forum/models.py:59
+msgid "Daily"
+msgstr ""
+
+#: forum/models.py:60
+msgid "No email"
+msgstr ""
+
+#: forum/models.py:321
+#, python-format
msgid "%(author)s modified the question"
-msgstr "%(author)s modificó la pregunta"
+msgstr ""
-#: forum/models.py:250
+#: forum/models.py:325
#, python-format
msgid "%(people)s posted %(new_answer_count)s new answers"
-msgstr "%(people)s publicaron %(new_answer_count)s nuevas respuestas"
+msgstr ""
-#: forum/models.py:255
+#: forum/models.py:330
#, python-format
msgid "%(people)s commented the question"
-msgstr "%(people)s comentarion la pregunta"
+msgstr ""
-#: forum/models.py:260
+#: forum/models.py:335
#, python-format
msgid "%(people)s commented answers"
-msgstr "%(people)s comentaron la respuesta"
+msgstr ""
-#: forum/models.py:262
+#: forum/models.py:337
#, python-format
msgid "%(people)s commented an answer"
-msgstr "%(people)s comentaron la respuesta"
+msgstr ""
-#: forum/models.py:306 forum/models.py:418
-msgid "revisions"
-msgstr "revisiones/"
+#: forum/models.py:368
+msgid "interesting"
+msgstr ""
+
+#: forum/models.py:368
+msgid "ignored"
+msgstr ""
-#: forum/models.py:441 templates/badges.html:51
+#: forum/models.py:538 templates/badges.html:53
msgid "gold"
-msgstr "oro"
+msgstr ""
-#: forum/models.py:442 templates/badges.html:59
+#: forum/models.py:539 templates/badges.html:61
msgid "silver"
-msgstr "plata"
+msgstr ""
-#: forum/models.py:443 templates/badges.html:66
+#: forum/models.py:540 templates/badges.html:68
msgid "bronze"
-msgstr "bronce"
+msgstr ""
+
+#: forum/urls.py:26
+msgid "upfiles/"
+msgstr ""
+
+#: forum/urls.py:30
+msgid "about/"
+msgstr ""
+
+#: forum/urls.py:31
+msgid "faq/"
+msgstr ""
+
+#: forum/urls.py:32
+msgid "privacy/"
+msgstr ""
+
+#: forum/urls.py:33
+msgid "logout/"
+msgstr ""
+
+#: forum/urls.py:34 forum/urls.py:35 forum/urls.py:36 forum/urls.py:53
+msgid "answers/"
+msgstr ""
+
+#: forum/urls.py:34 forum/urls.py:46 forum/urls.py:49 forum/urls.py:53
+msgid "comments/"
+msgstr ""
+
+#: forum/urls.py:35 forum/urls.py:40 forum/urls.py:75
+#: templates/user_info.html:45
+msgid "edit/"
+msgstr ""
+
+#: forum/urls.py:36 forum/urls.py:45
+msgid "revisions/"
+msgstr ""
+
+#: forum/urls.py:37 forum/urls.py:38 forum/urls.py:39 forum/urls.py:40
+#: forum/urls.py:41 forum/urls.py:42 forum/urls.py:43 forum/urls.py:44
+#: forum/urls.py:45 forum/urls.py:46 forum/urls.py:49
+msgid "questions/"
+msgstr ""
+
+#: forum/urls.py:38 forum/urls.py:85
+msgid "ask/"
+msgstr ""
+
+#: forum/urls.py:39
+msgid "unanswered/"
+msgstr ""
+
+#: forum/urls.py:41
+msgid "close/"
+msgstr ""
+
+#: forum/urls.py:42
+msgid "reopen/"
+msgstr ""
+
+#: forum/urls.py:43
+msgid "answer/"
+msgstr ""
+
+#: forum/urls.py:44
+msgid "vote/"
+msgstr ""
+
+#: forum/urls.py:47
+msgid "command/"
+msgstr ""
+
+#: forum/urls.py:58 forum/urls.py:59
+msgid "tags/"
+msgstr ""
+
+#: forum/urls.py:61 forum/urls.py:65
+msgid "mark-tag/"
+msgstr ""
+
+#: forum/urls.py:61
+msgid "interesting/"
+msgstr ""
+
+#: forum/urls.py:65
+msgid "ignored/"
+msgstr ""
+
+#: forum/urls.py:69
+msgid "unmark-tag/"
+msgstr ""
+
+#: forum/urls.py:73 forum/urls.py:75 forum/urls.py:76
+msgid "users/"
+msgstr ""
+
+#: forum/urls.py:74
+msgid "moderate-user/"
+msgstr ""
+
+#: forum/urls.py:77 forum/urls.py:78
+msgid "badges/"
+msgstr ""
+
+#: forum/urls.py:79
+msgid "messages/"
+msgstr ""
+
+#: forum/urls.py:79
+msgid "markread/"
+msgstr ""
+
+#: forum/urls.py:81
+msgid "nimda/"
+msgstr ""
+
+#: forum/urls.py:83
+msgid "upload/"
+msgstr ""
+
+#: forum/urls.py:84 forum/urls.py:85 forum/urls.py:86
+msgid "books/"
+msgstr ""
+
+#: forum/urls.py:87
+msgid "search/"
+msgstr ""
+
+#: forum/urls.py:88
+msgid "feedback/"
+msgstr ""
+
+#: forum/urls.py:89
+msgid "account/"
+msgstr ""
#: forum/user.py:16 templates/user_tabs.html:7
msgid "overview"
-msgstr "vista general"
+msgstr ""
#: forum/user.py:17
msgid "user profile"
-msgstr "perfil de usuario"
+msgstr ""
#: forum/user.py:18
msgid "user profile overview"
-msgstr "vista general del perfil de usuario"
+msgstr ""
#: forum/user.py:24 templates/user_tabs.html:9
msgid "recent activity"
-msgstr "actividades recientes"
+msgstr ""
#: forum/user.py:25
msgid "recent user activity"
-msgstr "actividades recientes del usuario"
+msgstr ""
#: forum/user.py:26
msgid "profile - recent activity"
-msgstr "perfil - actividades recientes"
+msgstr ""
#: forum/user.py:33 templates/user_tabs.html:13
msgid "responses"
-msgstr "respuestas"
+msgstr ""
#: forum/user.py:34 templates/user_tabs.html:12
msgid "comments and answers to others questions"
-msgstr "comentarios y respuestas a preguntas de otros"
+msgstr ""
#: forum/user.py:35
msgid "profile - responses"
-msgstr "perfil - respuestas"
+msgstr ""
-#: forum/user.py:42 templates/user_info.html:23 templates/users.html:26
+#: forum/user.py:42 templates/users.html:26
msgid "reputation"
-msgstr "reputación"
+msgstr ""
#: forum/user.py:43
msgid "user reputation in the community"
-msgstr "reputación del usuario en la comunidad"
+msgstr ""
#: forum/user.py:44
msgid "profile - user reputation"
-msgstr "perfil - reputación del usuario"
+msgstr ""
#: forum/user.py:50
msgid "favorite questions"
-msgstr "preguntas favoritas"
+msgstr ""
#: forum/user.py:51
msgid "users favorite questions"
-msgstr "preguntas favoritas de los usuarios"
+msgstr ""
#: forum/user.py:52
msgid "profile - favorite questions"
-msgstr "perfil - preguntas favoritas"
+msgstr ""
#: forum/user.py:59 templates/user_tabs.html:20
msgid "casted votes"
-msgstr "votos"
+msgstr ""
#: forum/user.py:60 templates/user_tabs.html:20
msgid "user vote record"
-msgstr "historial de votación"
+msgstr ""
#: forum/user.py:61
msgid "profile - votes"
-msgstr "perfil - votos"
+msgstr ""
-#: forum/user.py:68
-msgid "preferences"
-msgstr "preferencias"
+#: forum/user.py:68 templates/user_tabs.html:28
+msgid "email subscriptions"
+msgstr ""
#: forum/user.py:69 templates/user_tabs.html:27
-msgid "user preference settings"
-msgstr "preferencias del usuario"
+msgid "email subscription settings"
+msgstr ""
#: forum/user.py:70
-msgid "profile - user preferences"
-msgstr "perfil - preferencia de "
+msgid "profile - email subscriptions"
+msgstr ""
+
+#: forum/views.py:141
+msgid "Q&A forum feedback"
+msgstr ""
+
+#: forum/views.py:142
+msgid "Thanks for the feedback!"
+msgstr ""
-#: forum/views.py:947
+#: forum/views.py:150
+msgid "We look forward to hearing your feedback! Please, give it next time :)"
+msgstr ""
+
+#: forum/views.py:1080
#, python-format
-msgid "subscription saved, %(email)s needs validation"
-msgstr "subscripción guardada, %(email)s necesita validación"
+msgid "subscription saved, %(email)s needs validation, see %(details_url)s"
+msgstr ""
+
+#: forum/views.py:1088
+msgid "email update frequency has been set to daily"
+msgstr ""
+
+#: forum/views.py:1965 forum/views.py:1969
+msgid "changes saved"
+msgstr ""
+
+#: forum/views.py:1975
+msgid "email updates canceled"
+msgstr ""
-#: forum/views.py:1860
+#: forum/views.py:2142
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"
+msgstr ""
-#: forum/views.py:1862
+#: forum/views.py:2144
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:1864
+#: forum/views.py:2146
#, python-format
msgid "maximum upload file size is %sK"
-msgstr "tamaño máximo permitido es archivo %sK"
+msgstr ""
-#: forum/views.py:1866
+#: forum/views.py:2148
#, python-format
msgid ""
"Error uploading file. Please contact the site administrator. Thank you. %s"
msgstr ""
-"Error al subir el archivo. Por favor, contacte al administrador. Gracias. %s"
-#: forum/management/commands/send_email_alerts.py:35
-msgid "updates from website"
-msgstr "actualizaciones del sitio"
+#: forum/management/commands/send_email_alerts.py:233
+msgid "email update message subject"
+msgstr ""
+
+#: forum/management/commands/send_email_alerts.py:234
+#, python-format
+msgid "%(name)s, this is an update message header for a question"
+msgid_plural "%(name)s, this is an update message header for %(num)d questions"
+msgstr[0] ""
+msgstr[1] ""
+
+#: forum/management/commands/send_email_alerts.py:243
+#: forum/management/commands/send_email_alerts.py:258
+msgid "new question"
+msgstr ""
+
+#: forum/management/commands/send_email_alerts.py:268
+#, python-format
+msgid "There is also one question which was recently "
+msgid_plural ""
+"There are also %(num)d more questions which were recently updated "
+msgstr[0] ""
+msgstr[1] ""
+
+#: forum/management/commands/send_email_alerts.py:273
+msgid ""
+"Perhaps you could look up previously sent forum reminders in your mailbox."
+msgstr ""
+
+#: forum/management/commands/send_email_alerts.py:278
+#, python-format
+msgid ""
+"go to %(link)s to change frequency of email updates or %(email)s "
+"administrator"
+msgstr ""
-#: forum/templatetags/extra_tags.py:143 forum/templatetags/extra_tags.py:172
-#: templates/header.html:35
+#: forum/templatetags/extra_tags.py:163 forum/templatetags/extra_tags.py:192
+#: templates/header.html:33
msgid "badges"
-msgstr "distinciones"
+msgstr ""
-#: forum/templatetags/extra_tags.py:144 forum/templatetags/extra_tags.py:171
+#: forum/templatetags/extra_tags.py:164 forum/templatetags/extra_tags.py:191
msgid "reputation points"
-msgstr "puntos de reputación"
+msgstr ""
+
+#: forum/templatetags/extra_tags.py:247
+msgid "%b %d at %H:%M"
+msgstr ""
+
+#: forum/templatetags/extra_tags.py:249
+msgid "%b %d '%y at %H:%M"
+msgstr ""
+
+#: forum/templatetags/extra_tags.py:251
+msgid "2 days ago"
+msgstr ""
+
+#: forum/templatetags/extra_tags.py:253
+msgid "yesterday"
+msgstr ""
+
+#: forum/templatetags/extra_tags.py:255
+#, python-format
+msgid "%(hr)d hour ago"
+msgid_plural "%(hr)d hours ago"
+msgstr[0] ""
+msgstr[1] ""
+
+#: forum/templatetags/extra_tags.py:257
+#, python-format
+msgid "%(min)d min ago"
+msgid_plural "%(min)d mins ago"
+msgstr[0] ""
+msgstr[1] ""
-#: forum/templatetags/extra_tags.py:225
-msgid " ago"
-msgstr " atras"
+#: middleware/anon_user.py:33
+#, python-format
+msgid "first time greeting with %(url)s"
+msgstr ""
#: templates/404.html:24
msgid "Sorry, could not find the page you requested."
-msgstr "Disculpe, no se pudo encontrar la página que solicito."
+msgstr ""
#: templates/404.html:26
msgid "This might have happened for the following reasons:"
-msgstr "Esto puede haber sucedido por alguno de los siguientes motivos:"
+msgstr ""
#: templates/404.html:28
msgid "this question or answer has been deleted;"
-msgstr "esta pregunta o respuesta ha sido borrada;"
+msgstr ""
#: templates/404.html:29
msgid "url has error - please check it;"
-msgstr "la url tiene un error - por favor compruebelo;"
+msgstr ""
#: templates/404.html:30
msgid ""
"the page you tried to visit is protected or you don't have sufficient "
"points, see"
msgstr ""
-"La pagina que intentas acceder esta protegida o no tienes los puntos de "
-"reputación suficientes, ver"
#: templates/404.html:31
msgid "if you believe this error 404 should not have occured, please"
-msgstr "si consideras que este error 404 no debería haber sucedido, por favor"
+msgstr ""
#: templates/404.html:32
msgid "report this problem"
-msgstr "reporta este problema"
+msgstr ""
#: templates/404.html:41 templates/500.html:27
msgid "back to previous page"
-msgstr "volver a la página siguiente"
+msgstr ""
#: templates/404.html:42
msgid "see all questions"
-msgstr "ver todas las preguntas"
+msgstr ""
#: templates/404.html:43
msgid "see all tags"
-msgstr "ver todas las tags"
+msgstr ""
#: templates/500.html:22
msgid "sorry, system error"
-msgstr "lo sentimos, ha habido un error del sistema"
+msgstr ""
#: templates/500.html:24
msgid "system error log is recorded, error will be fixed as soon as possible"
msgstr ""
-"el error del sistema ha sido registrado, y será solucionado lo antes postible"
#: templates/500.html:25
msgid "please report the error to the site administrators if you wish"
-msgstr "por favor reportar el error al administrador de ser posible"
+msgstr ""
#: templates/500.html:28
msgid "see latest questions"
-msgstr "ver ultimas preguntas"
+msgstr ""
#: templates/500.html:29
msgid "see tags"
-msgstr "ver tags"
+msgstr ""
#: templates/about.html:6 templates/about.html.py:11
msgid "About"
-msgstr "Acerca de"
+msgstr ""
-#: templates/answer_edit.html:4 templates/answer_edit.html.py:47
+#: templates/answer_edit.html:5 templates/answer_edit.html.py:48
msgid "Edit answer"
-msgstr "Editar respuesta"
+msgstr ""
-#: templates/answer_edit.html:24 templates/answer_edit.html.py:27
-#: templates/ask.html:25 templates/ask.html.py:28 templates/question.html:43
-#: templates/question.html.py:46 templates/question_edit.html:27
+#: templates/answer_edit.html:25 templates/answer_edit.html.py:28
+#: templates/ask.html:26 templates/ask.html.py:29 templates/question.html:45
+#: templates/question.html.py:48 templates/question_edit.html:25
+#: templates/question_edit.html.py:28
msgid "hide preview"
-msgstr "ocultar previsualización"
+msgstr ""
-#: templates/answer_edit.html:27 templates/ask.html:28
-#: templates/question.html:46 templates/question_edit.html:27
+#: templates/answer_edit.html:28 templates/ask.html:29
+#: templates/question.html:48 templates/question_edit.html:28
msgid "show preview"
-msgstr "ver previsualización"
+msgstr ""
-#: templates/answer_edit.html:47 templates/question_edit.html:65
-#: templates/question_retag.html:52 templates/revisions_answer.html:36
-#: templates/revisions_question.html:36
+#: templates/answer_edit.html:48 templates/question_edit.html:66
+#: templates/question_retag.html:53 templates/revisions_answer.html:38
+#: templates/revisions_question.html:38
msgid "back"
-msgstr "volver"
+msgstr ""
-#: templates/answer_edit.html:52 templates/question_edit.html:70
-#: templates/revisions_answer.html:47 templates/revisions_question.html:47
+#: templates/answer_edit.html:53 templates/question_edit.html:71
+#: templates/revisions_answer.html:52 templates/revisions_question.html:52
msgid "revision"
-msgstr "revisión"
+msgstr ""
-#: templates/answer_edit.html:55 templates/question_edit.html:74
+#: templates/answer_edit.html:56 templates/question_edit.html:75
msgid "select revision"
-msgstr "seleccionar revisión"
+msgstr ""
-#: templates/answer_edit.html:62 templates/ask.html:94
-#: templates/question.html:467 templates/question_edit.html:91
+#: templates/answer_edit.html:63 templates/ask.html:97
+#: templates/question.html:442 templates/question_edit.html:92
msgid "Toggle the real time Markdown editor preview"
-msgstr "Activar la visualización en tiempo real de Markdown"
+msgstr ""
-#: templates/answer_edit.html:62 templates/ask.html:94
-#: templates/question.html:467 templates/question_edit.html:91
+#: templates/answer_edit.html:63 templates/ask.html:97
+#: templates/question.html:443 templates/question_edit.html:92
msgid "toggle preview"
-msgstr "Activar previsualización"
+msgstr ""
-#: templates/answer_edit.html:71 templates/question_edit.html:115
-#: templates/question_retag.html:73
+#: templates/answer_edit.html:72 templates/question_edit.html:124
+#: templates/question_retag.html:74
msgid "Save edit"
-msgstr "Guardar la edición"
+msgstr ""
-#: 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
+#: templates/answer_edit.html:73 templates/close.html:29
+#: templates/feedback.html:50 templates/question_edit.html:125
+#: templates/question_retag.html:75 templates/reopen.html:30
+#: templates/user_edit.html:87 templates/authopenid/changeemail.html:40
msgid "Cancel"
-msgstr "Cancelar"
+msgstr ""
#: templates/answer_edit_tips.html:4
msgid "answer tips"
-msgstr "sugerencias sobre respuestas"
+msgstr ""
#: templates/answer_edit_tips.html:7
msgid "please make your answer relevant to this community"
-msgstr "por favor, haz que tu respuesta sea relevante a esta comunidad"
+msgstr ""
#: templates/answer_edit_tips.html:10
msgid "try to give an answer, rather than engage into a discussion"
-msgstr "intenta dar una respuesta, más que entablar un debate o discusión"
+msgstr ""
#: templates/answer_edit_tips.html:13
msgid "please try to provide details"
-msgstr "por favor, intenta brindar detalles"
+msgstr ""
#: templates/answer_edit_tips.html:16 templates/question_edit_tips.html:13
msgid "be clear and concise"
-msgstr "ser claro y conciso"
+msgstr ""
-#: templates/answer_edit_tips.html:19 templates/question_edit_tips.html:16
+#: templates/answer_edit_tips.html:20 templates/question_edit_tips.html:17
msgid "see frequently asked questions"
-msgstr "ver preguntas frecuentes"
+msgstr ""
-#: templates/answer_edit_tips.html:24 templates/question_edit_tips.html:22
+#: templates/answer_edit_tips.html:26 templates/question_edit_tips.html:23
msgid "Markdown tips"
-msgstr "sugerencias de Markdown"
+msgstr ""
-#: templates/answer_edit_tips.html:27 templates/question_edit_tips.html:25
+#: templates/answer_edit_tips.html:29 templates/question_edit_tips.html:26
msgid "*italic* or __italic__"
-msgstr "*itálica* o __itálica__"
+msgstr ""
-#: templates/answer_edit_tips.html:30 templates/question_edit_tips.html:28
+#: templates/answer_edit_tips.html:32 templates/question_edit_tips.html:29
msgid "**bold** or __bold__"
-msgstr "**negrita** o __negrita__"
+msgstr ""
-#: templates/answer_edit_tips.html:33 templates/question_edit_tips.html:31
+#: templates/answer_edit_tips.html:35 templates/question_edit_tips.html:32
msgid "link"
-msgstr "enlace"
+msgstr ""
-#: 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
+#: templates/answer_edit_tips.html:35 templates/answer_edit_tips.html.py:39
+#: templates/question_edit_tips.html:32 templates/question_edit_tips.html:37
msgid "text"
-msgstr "texto"
+msgstr ""
-#: templates/answer_edit_tips.html:37 templates/question_edit_tips.html:36
+#: templates/answer_edit_tips.html:39 templates/question_edit_tips.html:37
msgid "image"
-msgstr "imagen"
+msgstr ""
-#: templates/answer_edit_tips.html:41 templates/question_edit_tips.html:40
+#: templates/answer_edit_tips.html:43 templates/question_edit_tips.html:41
msgid "numbered list:"
-msgstr "lista numerada"
+msgstr ""
-#: templates/answer_edit_tips.html:46 templates/question_edit_tips.html:45
+#: templates/answer_edit_tips.html:48 templates/question_edit_tips.html:46
msgid "basic HTML tags are also supported"
-msgstr "etiquetas básicas de HTML permitidas"
+msgstr ""
-#: templates/answer_edit_tips.html:49 templates/question_edit_tips.html:48
+#: templates/answer_edit_tips.html:52 templates/question_edit_tips.html:50
msgid "learn more about Markdown"
-msgstr "aprender mas sobre Markdown"
+msgstr ""
-#: templates/ask.html:4 templates/ask.html.py:60
+#: templates/ask.html:5 templates/ask.html.py:61
msgid "Ask a question"
-msgstr "Hacer una pregunta"
+msgstr ""
-#: templates/ask.html:67
+#: templates/ask.html:68
msgid "login to post question info"
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
+#: templates/ask.html:74
#, python-format
-msgid "must have valid %(email)s to post"
+msgid ""
+"must have valid %(email)s to post, \n"
+" see %(email_validation_faq_url)s\n"
+" "
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:107
+#: templates/ask.html:112 templates/ask.html.py:119
+#: templates/question_edit.html:120
msgid "(required)"
-msgstr "(requerido)"
+msgstr ""
-#: templates/ask.html:114
+#: templates/ask.html:126
msgid "Login/signup to post your question"
-msgstr "Iniciar sesión/registrarse para publicar su pregunta"
+msgstr ""
-#: templates/ask.html:116
+#: templates/ask.html:128
msgid "Ask your question"
-msgstr "Haz tu pregunta"
+msgstr ""
#: templates/badge.html:6 templates/badge.html.py:17
msgid "Badge"
-msgstr "Distinción"
+msgstr ""
#: templates/badge.html:26
msgid "The users have been awarded with badges:"
-msgstr "Usuarios han sido galardonados con distinciones:"
+msgstr ""
#: templates/badges.html:6
msgid "Badges summary"
-msgstr "Resumen de distinciones"
+msgstr ""
-#: templates/badges.html:17 templates/user_stats.html:115
+#: templates/badges.html:17
msgid "Badges"
-msgstr "Distinciones"
+msgstr ""
#: templates/badges.html:21
msgid "Community gives you awards for your questions, answers and votes."
-msgstr "La comunidad te da distinciones por tus preguntas, respuestas y votos."
+msgstr ""
#: templates/badges.html:22
+#, python-format
msgid ""
-"Below is the list of available badges and number of times each type of badge "
-"has been awarded."
+"Below is the list of available badges and number \n"
+" of times each type of badge has been awarded. Give us feedback at %"
+"(feedback_faq_url)s.\n"
+" "
msgstr ""
-"Debajo esta la lista de las distinciones disponibles y la cantidad de veces "
-"que han sido asignadas."
-#: templates/badges.html:48
+#: templates/badges.html:50
msgid "Community badges"
-msgstr "Distinciones de la comunidad"
+msgstr ""
-#: templates/badges.html:54
+#: templates/badges.html:56
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:62
+#: templates/badges.html:64
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:65
+#: templates/badges.html:67
msgid "bronze badge: often given as a special honor"
msgstr ""
-"distinción de bronce: con frecuencia entregada como reconocimiento especial."
-#: templates/badges.html:69
+#: templates/badges.html:71
msgid "bronze badge description"
msgstr ""
-"Si eres un usuario activo de esta comunidad, recibirás esta distinción - de "
-"todas maneras es un honor especial."
#: templates/book.html:7
msgid "reading channel"
-msgstr "canal de lectura"
+msgstr ""
#: templates/book.html:26
msgid "[author]"
-msgstr "[autor]"
+msgstr ""
#: templates/book.html:30
msgid "[publisher]"
-msgstr "[editorial]"
+msgstr ""
#: templates/book.html:34
msgid "[publication date]"
-msgstr "[fecha de publicación]"
+msgstr ""
#: templates/book.html:38
msgid "[price]"
-msgstr "[precio]"
+msgstr ""
#: templates/book.html:39
msgid "currency unit"
-msgstr "unidad de moneda"
+msgstr ""
#: templates/book.html:42
msgid "[pages]"
-msgstr "[páginas]"
+msgstr ""
#: templates/book.html:43
msgid "pages abbreviation"
-msgstr "abreviación de páginas"
+msgstr ""
#: templates/book.html:46
msgid "[tags]"
-msgstr "[etiquetas]"
+msgstr ""
#: templates/book.html:56
msgid "author blog"
-msgstr "blog del autor"
+msgstr ""
#: templates/book.html:62
msgid "book directory"
-msgstr "directorio del libro"
+msgstr ""
#: templates/book.html:66
msgid "buy online"
-msgstr "comprar en-linea"
+msgstr ""
#: templates/book.html:79
msgid "reader questions"
-msgstr "pregunta de lector"
+msgstr ""
#: templates/book.html:82
msgid "ask the author"
-msgstr "preguntar al autor"
+msgstr ""
#: templates/book.html:88 templates/book.html.py:93
-#: templates/users_questions.html:17
+#: templates/users_questions.html:18
msgid "this question was selected as favorite"
-msgstr "esta pregunta ha sido seleccionada como favorita"
+msgstr ""
#: templates/book.html:88 templates/book.html.py:93
-#: templates/users_questions.html:11 templates/users_questions.html.py:17
+#: templates/users_questions.html:11 templates/users_questions.html.py:18
msgid "number of times"
-msgstr "numero de veces"
+msgstr ""
-#: templates/book.html:105 templates/index.html:48 templates/questions.html:46
-#: templates/unanswered.html:37 templates/users_questions.html:30
+#: templates/book.html:105 templates/index.html:50
+#: templates/question_summary_list_roll.html:14 templates/questions.html:84
+#: templates/unanswered.html:39 templates/users_questions.html:32
msgid "votes"
-msgstr "votos"
+msgstr ""
#: templates/book.html:108
msgid "the answer has been accepted to be correct"
-msgstr "la respuesta ha sido aceptada como correcta"
+msgstr ""
-#: templates/book.html:115 templates/index.html:49 templates/questions.html:47
-#: templates/unanswered.html:38 templates/users_questions.html:40
+#: templates/book.html:115 templates/index.html:51
+#: templates/question_summary_list_roll.html:15 templates/questions.html:85
+#: templates/unanswered.html:40 templates/users_questions.html:40
msgid "views"
-msgstr "vistas"
+msgstr ""
-#: 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
+#: templates/book.html:125 templates/index.html:106
+#: templates/question.html:488 templates/question_summary_list_roll.html:52
+#: templates/questions.html:140 templates/questions.html.py:257
+#: templates/tags.html:49 templates/unanswered.html:95
+#: templates/unanswered.html.py:122 templates/users_questions.html:52
msgid "using tags"
-msgstr "usando etiquetas"
+msgstr ""
#: templates/book.html:147
msgid "subscribe to book RSS feed"
-msgstr "suscribirse al RSS del libro"
+msgstr ""
-#: templates/book.html:147 templates/index.html:118
+#: templates/book.html:147 templates/index.html:157
msgid "subscribe to the questions feed"
-msgstr "suscribirse al agregado de noticias"
+msgstr ""
#: templates/close.html:6 templates/close.html.py:16
msgid "Close question"
-msgstr "Cerrar pregunta"
+msgstr ""
#: templates/close.html:19
msgid "Close the question"
-msgstr "Cerrar la pregunta"
+msgstr ""
#: templates/close.html:25
msgid "Reasons"
-msgstr "Razón"
+msgstr ""
#: templates/close.html:28
msgid "OK to close"
-msgstr "OK para cerrar"
+msgstr ""
#: templates/faq.html:11
msgid "Frequently Asked Questions "
-msgstr "Preguntas Frecuentes"
+msgstr ""
#: templates/faq.html:16
msgid "What kinds of questions can I ask here?"
-msgstr "¿Qué clase de preguntas puedo hacer aquí?"
+msgstr ""
#: templates/faq.html:17
msgid ""
"Most importanly - questions should be <strong>relevant</strong> to this "
"community."
msgstr ""
-"Por encima de todo - las preguntas deben ser <strong>relevantes</strong>a "
-"esta comunidad."
#: templates/faq.html:18
msgid ""
"Before asking the question - please make sure to use search to see whether "
"your question has alredy been answered."
msgstr ""
-"Antes de hacer tu pregunta - por favor usa el buscador para asegurarte que "
-"la pregunta no este ya hecha."
#: templates/faq.html:21
msgid "What questions should I avoid asking?"
-msgstr "¿Qué preguntas debería evitar preguntar?"
+msgstr ""
#: templates/faq.html:22
msgid ""
"Please avoid asking questions that are not relevant to this community, too "
"subjective and argumentative."
msgstr ""
-"Evita hacer preguntas que no son relevantes a la comunidad, demasiado "
-"subjetivas o argumentativas."
#: templates/faq.html:27
msgid "What should I avoid in my answers?"
-msgstr "¿Que debo evitar en mis respuestas?"
+msgstr ""
#: templates/faq.html:28
msgid ""
@@ -1181,42 +1455,32 @@ msgid ""
"discussions in your answers, comment facility allows some space for brief "
"discussions."
msgstr ""
-"es un sitio de Preguntas y Respuestas, no un grupo de discusión. Por ende, "
-"intenta evitar discusiones en tus respuestas. Los comentarios permiten "
-"realizar pequeñas discusiones."
#: templates/faq.html:32
msgid "Who moderates this community?"
-msgstr "¿Quién modera esta comunidad?"
+msgstr ""
#: templates/faq.html:33
msgid "The short answer is: <strong>you</strong>."
-msgstr "La respuesta corta es: <strong>tú</strong>"
+msgstr ""
#: templates/faq.html:34
msgid "This website is moderated by the users."
-msgstr "Este sitio es moderado por los usuarios."
+msgstr ""
#: templates/faq.html:35
msgid ""
"The reputation system allows users earn the authorization to perform a "
"variety of moderation tasks."
msgstr ""
-"El sistema de reputación permite a los usuarios adquirir autorización para "
-"realizar diversas tareas de moderación."
#: templates/faq.html:40
msgid "How does reputation system work?"
-msgstr "¿Cómo funciona el sistema de reputación?"
+msgstr ""
#: templates/faq.html:41
msgid "Rep system summary"
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:42
msgid ""
@@ -1228,657 +1492,804 @@ msgid ""
"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
+#: templates/faq.html:53 templates/user_votes.html:15
msgid "upvote"
-msgstr "votar positivo"
+msgstr ""
#: templates/faq.html:57
msgid "use tags"
-msgstr "etiquetas usadas"
+msgstr ""
#: templates/faq.html:62
msgid "add comments"
-msgstr "agregar comentarios"
+msgstr ""
-#: templates/faq.html:66 templates/user_votes.html:16
+#: templates/faq.html:66 templates/user_votes.html:17
msgid "downvote"
-msgstr "votar negativo"
+msgstr ""
#: templates/faq.html:69
msgid "open and close own questions"
-msgstr "abrir y cerrar sus propias preguntas"
+msgstr ""
#: templates/faq.html:73
msgid "retag questions"
-msgstr "re-etiquetar preguntas"
+msgstr ""
-#: templates/faq.html:77
+#: templates/faq.html:78
msgid "edit community wiki questions"
-msgstr "editar preguntas de la wiki comunitaria"
+msgstr ""
-#: templates/faq.html:81
+#: templates/faq.html:83
msgid "edit any answer"
-msgstr "editar cualquier pregunta"
+msgstr ""
-#: templates/faq.html:85
+#: templates/faq.html:87
msgid "open any closed question"
-msgstr "abrir cualquier pregunta cerrada"
+msgstr ""
-#: templates/faq.html:89
+#: templates/faq.html:91
msgid "delete any comment"
-msgstr "borrar cualquier comentario"
+msgstr ""
-#: templates/faq.html:93
+#: templates/faq.html:95
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:100
+#: templates/faq.html:102
msgid "how to validate email title"
-msgstr "¿Cómo validar mi correo electrónico?"
+msgstr ""
-#: 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\">¿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:106
+#: templates/faq.html:104
+#, python-format
+msgid ""
+"how to validate email info with %(send_email_key_url)s %(gravatar_faq_url)s"
+msgstr ""
+
+#: templates/faq.html:108
msgid "what is gravatar"
-msgstr "¿Qué es gravatar?"
+msgstr ""
-#: templates/faq.html:107
+#: templates/faq.html:109
msgid "gravatar faq info"
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:110
+#: templates/faq.html:112
msgid "To register, do I need to create new password?"
-msgstr "¿Para registrarme, debo crearme una cuenta?"
+msgstr ""
-#: templates/faq.html:111
+#: templates/faq.html:113
msgid ""
"No, you don't have to. You can login through any service that supports "
"OpenID, e.g. Google, Yahoo, AOL, etc."
msgstr ""
-"No tienes porqué. Puedes ingresar usando cualquiera de los servicios que "
-"soportan OpenID, ej. Google, Yahoo, AOL, MyOpenID, etc."
-#: templates/faq.html:112
+#: templates/faq.html:114
msgid "Login now!"
-msgstr "Ingresa ahora!"
+msgstr ""
-#: templates/faq.html:117
+#: templates/faq.html:119
msgid "Why other people can edit my questions/answers?"
-msgstr "¿Porqué otras personas pueden editar mis preguntas y respuestas?"
+msgstr ""
-#: templates/faq.html:118
+#: templates/faq.html:120
msgid "Goal of this site is..."
msgstr ""
-"El objetivo de este sitio es generar contenido valioso mediante preguntas y "
-"respuestas, de forma colaborativa. "
-#: templates/faq.html:118
+#: templates/faq.html:120
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 ""
-"Entonces, las preguntas y respuestas pueden ser editadas como wiki por "
-"usuarios con experiencia, y esto mejora la calidad general del conocimiento "
-"acumulado."
-#: templates/faq.html:119
+#: templates/faq.html:121
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:123
+#: templates/faq.html:125
msgid "Still have questions?"
-msgstr "¿Aún tienes preguntas?"
+msgstr ""
-#: 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:126
+#, python-format
+msgid ""
+"Please ask your question at %(ask_question_url)s, help make our community "
+"better!"
+msgstr ""
-#: templates/faq.html:126 templates/header.html:29 templates/header.html.py:63
+#: templates/faq.html:128 templates/header.html:27 templates/header.html.py:61
msgid "questions"
-msgstr "preguntas"
+msgstr ""
-#: templates/faq.html:126 templates/index.html:123
+#: templates/faq.html:128 templates/index.html:162
msgid "."
-msgstr "."
+msgstr ""
+
+#: templates/feedback.html:6
+msgid "Feedback"
+msgstr ""
+
+#: templates/feedback.html:11
+msgid "Give us your feedback!"
+msgstr ""
+
+#: templates/feedback.html:17
+#, python-format
+msgid ""
+"\n"
+" <span class='big strong'>Dear %(user_name)s</span>, we look "
+"forward to hearing your feedback. \n"
+" Please type and send us your message below.\n"
+" "
+msgstr ""
+
+#: templates/feedback.html:24
+msgid ""
+"\n"
+" <span class='big strong'>Dear visitor</span>, we look forward to "
+"hearing your feedback.\n"
+" Please type and send us your message below.\n"
+" "
+msgstr ""
-#: templates/footer.html:7 templates/header.html:14 templates/index.html:83
+#: templates/feedback.html:41
+msgid "(this field is required)"
+msgstr ""
+
+#: templates/feedback.html:49
+msgid "Send Feedback"
+msgstr ""
+
+#: templates/footer.html:8 templates/header.html:13 templates/index.html:120
msgid "about"
-msgstr "acerca de nosotros"
+msgstr ""
-#: templates/footer.html:8 templates/header.html:15 templates/index.html:84
-#: templates/question_edit_tips.html:16
+#: templates/footer.html:9 templates/header.html:14 templates/index.html:121
+#: templates/question_edit_tips.html:17
msgid "faq"
-msgstr "preguntas frecuentes"
+msgstr ""
-#: templates/footer.html:9
+#: templates/footer.html:10
msgid "blog"
-msgstr "blog"
+msgstr ""
-#: templates/footer.html:10
+#: templates/footer.html:11
msgid "contact us"
-msgstr "contactenos"
+msgstr ""
-#: templates/footer.html:11
+#: templates/footer.html:12
msgid "privacy policy"
-msgstr "código de privacidad"
+msgstr ""
-#: templates/footer.html:12
+#: templates/footer.html:21
msgid "give feedback"
-msgstr "envía comentarios"
-
-#: templates/footer.html:18
-msgid "current revision"
-msgstr "revisión actual"
+msgstr ""
-#: templates/header.html:10
+#: templates/header.html:9
msgid "logout"
-msgstr "salir"
+msgstr ""
-#: templates/header.html:12 templates/authopenid/signup.html:41
+#: templates/header.html:11
msgid "login"
-msgstr "entrar"
+msgstr ""
-#: templates/header.html:23
+#: templates/header.html:21
msgid "back to home page"
-msgstr "volver página principal"
+msgstr ""
-#: templates/header.html:31 templates/header.html.py:65
+#: templates/header.html:29 templates/header.html.py:63
msgid "users"
-msgstr "usuarios"
+msgstr ""
-#: templates/header.html:33
+#: templates/header.html:31
msgid "books"
-msgstr "libros"
+msgstr ""
-#: templates/header.html:36
+#: templates/header.html:34
msgid "unanswered questions"
-msgstr "sin respuesta"
+msgstr ""
-#: templates/header.html:40
+#: templates/header.html:38
msgid "my profile"
-msgstr "mi perfil"
+msgstr ""
-#: templates/header.html:44
+#: templates/header.html:42
msgid "ask a question"
-msgstr "hacer una pregunta"
+msgstr ""
-#: templates/header.html:59
+#: templates/header.html:57
msgid "search"
-msgstr "buscar"
+msgstr ""
-#: templates/index.html:7
+#: templates/index.html:8
msgid "Home"
-msgstr "Inicio"
+msgstr ""
-#: templates/index.html:22 templates/questions.html:7
+#: templates/index.html:25 templates/questions.html:8
msgid "Questions"
-msgstr "Preguntas"
+msgstr ""
-#: templates/index.html:24
+#: templates/index.html:27
msgid "last updated questions"
-msgstr "ultimas preguntas actualizadas"
+msgstr ""
-#: templates/index.html:24 templates/questions.html:25
-#: templates/unanswered.html:20
+#: templates/index.html:27 templates/questions.html:51
+#: templates/unanswered.html:21
msgid "newest"
-msgstr "más nuevas"
+msgstr ""
+
+#: templates/index.html:28 templates/questions.html:52
+msgid "most recently updated questions"
+msgstr ""
-#: templates/index.html:25 templates/questions.html:27
+#: templates/index.html:28 templates/questions.html:52
+msgid "active"
+msgstr ""
+
+#: templates/index.html:29 templates/questions.html:53
msgid "hottest questions"
-msgstr "preguntas calientes"
+msgstr ""
-#: templates/index.html:25 templates/questions.html:27
+#: templates/index.html:29 templates/questions.html:53
msgid "hottest"
-msgstr "más calientes"
+msgstr ""
-#: templates/index.html:26 templates/questions.html:28
+#: templates/index.html:30 templates/questions.html:54
msgid "most voted questions"
-msgstr "preguntas más votadas"
+msgstr ""
-#: templates/index.html:26 templates/questions.html:28
+#: templates/index.html:30 templates/questions.html:54
msgid "most voted"
-msgstr "más votadas"
+msgstr ""
-#: templates/index.html:27
+#: templates/index.html:31
msgid "all questions"
-msgstr "todas las preguntas"
+msgstr ""
-#: templates/index.html:47 templates/questions.html:45
-#: templates/unanswered.html:36 templates/users_questions.html:35
+#: templates/index.html:49 templates/question_summary_list_roll.html:13
+#: templates/questions.html:83 templates/unanswered.html:38
+#: templates/users_questions.html:36
msgid "answers"
-msgstr "respuestas"
+msgstr ""
+
+#: templates/index.html:81 templates/index.html.py:95
+#: templates/questions.html:115 templates/questions.html.py:129
+#: templates/unanswered.html:70 templates/unanswered.html.py:84
+msgid "Posted:"
+msgstr ""
+
+#: templates/index.html:84 templates/index.html.py:89
+#: templates/questions.html:118 templates/questions.html.py:123
+#: templates/unanswered.html:73 templates/unanswered.html.py:78
+msgid "Updated:"
+msgstr ""
-#: 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
+#: templates/index.html:106 templates/question.html:488
+#: templates/question_summary_list_roll.html:52 templates/questions.html:140
+#: templates/questions.html.py:257 templates/tags.html:49
+#: templates/unanswered.html:95 templates/unanswered.html.py:122
+#: templates/users_questions.html:52
msgid "see questions tagged"
-msgstr "ver preguntas etiquetadas"
+msgstr ""
-#: templates/index.html:80
+#: templates/index.html:117
msgid "welcome to website"
-msgstr "bienvenido a sitio"
+msgstr ""
-#: templates/index.html:89
+#: templates/index.html:128
msgid "Recent tags"
-msgstr "Etiquetas recientes"
+msgstr ""
-#: templates/index.html:94 templates/question.html:125
+#: templates/index.html:133 templates/question.html:135
#, python-format
msgid "see questions tagged '%(tagname)s'"
-msgstr "ver preguntas etiquetadas '%(tagname)s'"
+msgstr ""
-#: templates/index.html:97 templates/index.html.py:123
+#: templates/index.html:136 templates/index.html.py:162
msgid "popular tags"
-msgstr "etiquetas populares"
+msgstr ""
-#: templates/index.html:102
+#: templates/index.html:141
msgid "Recent awards"
-msgstr "Reconocimientos recientes"
+msgstr ""
-#: templates/index.html:108
+#: templates/index.html:147
msgid "given to"
-msgstr "dados a"
+msgstr ""
-#: templates/index.html:113
+#: templates/index.html:152
msgid "all awards"
-msgstr "todos los reconocimientos"
+msgstr ""
-#: templates/index.html:118
+#: templates/index.html:157
msgid "subscribe to last 30 questions by RSS"
-msgstr "suscribirse a las últimas 30 preguntas por RSS"
+msgstr ""
-#: templates/index.html:123
+#: templates/index.html:162
msgid "Still looking for more? See"
-msgstr "¿Aún sigues buscando más? Ver"
+msgstr ""
-#: templates/index.html:123
+#: templates/index.html:162
msgid "complete list of questions"
-msgstr "lista completa de preguntas"
+msgstr ""
-#: templates/index.html:123
+#: templates/index.html:162 templates/authopenid/signup.html:18
msgid "or"
-msgstr "ó"
+msgstr ""
-#: templates/index.html:123
+#: templates/index.html:162
msgid "Please help us answer"
-msgstr "Ayudanos a responder"
+msgstr ""
-#: templates/index.html:123
+#: templates/index.html:162
msgid "list of unanswered questions"
-msgstr "lista de preguntas sin respuesta"
+msgstr ""
-#: templates/logout.html:6 templates/logout.html.py:17
+#: templates/logout.html:6 templates/logout.html.py:16
msgid "Logout"
-msgstr "Salir"
+msgstr ""
-#: templates/logout.html:20
+#: templates/logout.html:19
msgid ""
"As a registered user you can login with your OpenID, log out of the site or "
"permanently remove your account."
msgstr ""
-"Como usuario registrado puedes ingresar con tu OpenID, salir del sitio o "
-"eliminar de forma permanente tu cuenta."
-#: templates/logout.html:21
+#: templates/logout.html:20
msgid "Logout now"
-msgstr "Salir ahora"
+msgstr ""
#: templates/pagesize.html:6
msgid "posts per page"
-msgstr "entradas por página"
+msgstr ""
#: templates/paginator.html:6 templates/paginator.html.py:7
msgid "previous"
-msgstr "previo"
+msgstr ""
#: templates/paginator.html:19
msgid "current page"
-msgstr "página actúal"
+msgstr ""
#: templates/paginator.html:22 templates/paginator.html.py:29
msgid "page number "
-msgstr "número de página"
+msgstr ""
#: templates/paginator.html:22 templates/paginator.html.py:29
msgid "number - make blank in english"
-msgstr " "
+msgstr ""
#: templates/paginator.html:33
msgid "next page"
-msgstr "próxima página"
+msgstr ""
+
+#: templates/post_contributor_info.html:9
+#, python-format
+msgid ""
+"\n"
+" one revision\n"
+" "
+msgid_plural ""
+"\n"
+" %(rev_count)s revisions\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/post_contributor_info.html:19
+msgid "asked"
+msgstr ""
+
+#: templates/post_contributor_info.html:22
+msgid "answered"
+msgstr ""
+
+#: templates/post_contributor_info.html:24
+msgid "posted"
+msgstr ""
+
+#: templates/post_contributor_info.html:45
+msgid "updated"
+msgstr ""
#: templates/privacy.html:6 templates/privacy.html.py:11
msgid "Privacy policy"
-msgstr "Privacidad"
+msgstr ""
#: templates/privacy.html:15
msgid "general message about privacy"
-msgstr "mensaje de privacidad"
+msgstr ""
#: templates/privacy.html:18
msgid "Site Visitors"
-msgstr "Visitantes del Sitio"
+msgstr ""
#: templates/privacy.html:20
msgid "what technical information is collected about visitors"
-msgstr "que información es recolectada sobre los usuarios"
+msgstr ""
#: templates/privacy.html:23
msgid "Personal Information"
-msgstr "Información Personal"
+msgstr ""
#: templates/privacy.html:25
msgid "details on personal information policies"
-msgstr "describir código de manejo de la información personal"
+msgstr ""
#: templates/privacy.html:28
msgid "Other Services"
-msgstr "Otros servicios"
+msgstr ""
#: templates/privacy.html:30
msgid "details on sharing data with third parties"
-msgstr "detalles sobre compartir información con terceros"
+msgstr ""
#: templates/privacy.html:35
msgid "cookie policy details"
-msgstr "uso de cookies"
+msgstr ""
#: templates/privacy.html:37
msgid "Policy Changes"
-msgstr "Cambios de Códigos"
+msgstr ""
#: templates/privacy.html:38
msgid "how privacy policies can be changed"
-msgstr "como pueden ser cambiados los códigos de privacidad"
+msgstr ""
-#: templates/question.html:72 templates/question.html.py:73
-#: templates/question.html:85 templates/question.html.py:87
+#: templates/question.html:77 templates/question.html.py:78
+#: templates/question.html:94 templates/question.html.py:96
msgid "i like this post (click again to cancel)"
-msgstr "Me gusta esta entrada (clickear devuelta para cancelar)"
+msgstr ""
-#: templates/question.html:75 templates/question.html.py:89
-#: templates/question.html:289
+#: templates/question.html:80 templates/question.html.py:98
+#: templates/question.html:257
msgid "current number of votes"
-msgstr "número actual de votos"
+msgstr ""
-#: templates/question.html:80 templates/question.html.py:81
-#: templates/question.html:94 templates/question.html.py:95
+#: templates/question.html:89 templates/question.html.py:90
+#: templates/question.html:103 templates/question.html.py:104
msgid "i dont like this post (click again to cancel)"
-msgstr "No me gusta esta entrada (clickear devuelta para cancelar)"
+msgstr ""
-#: templates/question.html:100 templates/question.html.py:101
+#: templates/question.html:109 templates/question.html.py:110
msgid "mark this question as favorite (click again to cancel)"
-msgstr "marcar esta pregunta como favorita (clickear devuelta para cancelar)"
+msgstr ""
-#: templates/question.html:107 templates/question.html.py:108
+#: templates/question.html:116 templates/question.html.py:117
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:134 templates/question.html.py:322
-#: templates/revisions_answer.html:53 templates/revisions_question.html:53
+#: templates/question.html:140 templates/question.html.py:294
+#: templates/revisions_answer.html:58 templates/revisions_question.html:58
msgid "edit"
-msgstr "editar"
-
-#: templates/question.html:138 templates/question.html.py:332
-msgid "delete"
-msgstr "borrar"
+msgstr ""
-#: templates/question.html:143
+#: templates/question.html:145
msgid "reopen"
-msgstr "re-abrir"
+msgstr ""
-#: templates/question.html:148
+#: templates/question.html:149
msgid "close"
-msgstr "cerrar"
+msgstr ""
-#: templates/question.html:154 templates/question.html.py:345
+#: templates/question.html:155 templates/question.html.py:300
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:155 templates/question.html.py:346
+#: templates/question.html:156 templates/question.html.py:301
msgid "flag offensive"
-msgstr "marcar como ofensivo"
-
-#: templates/question.html:167 templates/question.html.py:355
-#: templates/revisions_answer.html:65 templates/revisions_question.html:65
-msgid "updated"
-msgstr "actualizado"
+msgstr ""
-#: 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:164 templates/question.html.py:312
+msgid "delete"
+msgstr ""
-#: templates/question.html:246 templates/question.html.py:429
-msgid "comments"
-msgstr "comentarios"
+#: templates/question.html:182 templates/question.html.py:332
+msgid "delete this comment"
+msgstr ""
-#: templates/question.html:247 templates/question.html.py:430
+#: templates/question.html:193 templates/question.html.py:343
+#: templates/question.html:367
msgid "add comment"
-msgstr "agregar comentario"
+msgstr ""
+
+#: templates/question.html:197
+#, python-format
+msgid ""
+"\n"
+" see <strong>one</strong> more \n"
+" "
+msgid_plural ""
+"\n"
+" see <strong>%(counter)s</strong> "
+"more\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/question.html:203
+#, python-format
+msgid ""
+"\n"
+" see <strong>one</strong> more "
+"comment\n"
+" "
+msgid_plural ""
+"\n"
+" see <strong>%(counter)s</strong> "
+"more comments\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/question.html:260
+#: templates/question.html:219
#, python-format
msgid ""
-"The question has been closed for the following reason \"%(question."
-"get_close_reason_display)s\" by"
+"The question has been closed for the following reason \"%(close_reason)s\" by"
msgstr ""
-"La pregunta ha sido cerrada por el siguiente motivo \"%(question."
-"get_close_reason_display)s\" por"
-#: templates/question.html:262
+#: templates/question.html:221
#, python-format
-msgid "close date %(question.closed_at)s"
-msgstr "fecha de cerrada %(question.closed_at)s"
+msgid "close date %(closed_at)s"
+msgstr ""
-#: templates/question.html:269 templates/user_stats.html:28
-msgid "Answers"
-msgstr "Respuestas"
+#: templates/question.html:229
+#, python-format
+msgid ""
+"\n"
+" One Answer:\n"
+" "
+msgid_plural ""
+"\n"
+" %(counter)s Answers:\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/question.html:271
+#: templates/question.html:237
msgid "oldest answers will be shown first"
-msgstr "la respuesta mas vieja será mostrada primero"
+msgstr ""
-#: templates/question.html:271
+#: templates/question.html:237
msgid "oldest answers"
-msgstr "pregunta más vieja"
+msgstr ""
-#: templates/question.html:272
+#: templates/question.html:239
msgid "newest answers will be shown first"
-msgstr "preguntas más nuevas serán mostradas primero"
+msgstr ""
-#: templates/question.html:272
+#: templates/question.html:239
msgid "newest answers"
-msgstr "más nuevas"
+msgstr ""
-#: templates/question.html:273
+#: templates/question.html:241
msgid "most voted answers will be shown first"
-msgstr "las preguntas más votadas serán mostradas primero"
+msgstr ""
-#: templates/question.html:273
+#: templates/question.html:241
msgid "popular answers"
-msgstr "respuestas populares"
+msgstr ""
-#: templates/question.html:287 templates/question.html.py:288
+#: templates/question.html:255 templates/question.html.py:256
msgid "i like this answer (click again to cancel)"
-msgstr "me gusta esta respuesta (clickear devuelta para cancelar)"
+msgstr ""
-#: templates/question.html:294 templates/question.html.py:295
+#: templates/question.html:262 templates/question.html.py:263
msgid "i dont like this answer (click again to cancel)"
-msgstr "no me gusta esta respuesta (clickear devuelta para cancelar)"
+msgstr ""
-#: templates/question.html:300 templates/question.html.py:301
+#: templates/question.html:268 templates/question.html.py:269
msgid "mark this answer as favorite (click again to undo)"
-msgstr "marcar esta respuesta como favorita (clickear devuelta para deshacer)"
+msgstr ""
-#: templates/question.html:306 templates/question.html.py:307
+#: templates/question.html:274 templates/question.html.py:275
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:329
-msgid "undelete"
-msgstr "deshacer eliminar"
+msgstr ""
-#: templates/question.html:339
+#: templates/question.html:288
msgid "answer permanent link"
-msgstr "enlace permanente a respuesta"
+msgstr ""
-#: templates/question.html:340
+#: templates/question.html:289
msgid "permanent link"
-msgstr "enlace permanente"
+msgstr ""
+
+#: templates/question.html:312
+msgid "undelete"
+msgstr ""
+
+#: templates/question.html:347
+#, python-format
+msgid ""
+"\n"
+" see <strong>one</"
+"strong> more \n"
+" "
+msgid_plural ""
+"\n"
+" see <strong>%"
+"(counter)s</strong> more\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/question.html:353
+#, python-format
+msgid ""
+"\n"
+" see <strong>one</"
+"strong> more comment\n"
+" "
+msgid_plural ""
+"\n"
+" see <strong>%"
+"(counter)s</strong> more comments\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/question.html:366
+msgid "comments"
+msgstr ""
+
+#: templates/question.html:386 templates/question.html.py:389
+msgid "Notify me once a day when there are any new answers"
+msgstr ""
+
+#: templates/question.html:392
+msgid "Notify me weekly when there are any new answers"
+msgstr ""
+
+#: templates/question.html:397
+#, python-format
+msgid ""
+"\n"
+" You can always adjust frequency of email updates from your %"
+"(profile_url)s\n"
+" "
+msgstr ""
-#: templates/question.html:453
+#: templates/question.html:404
+msgid "once you sign in you will be able to subscribe for any updates here"
+msgstr ""
+
+#: templates/question.html:415
msgid "Your answer"
-msgstr "Tu respuesta"
+msgstr ""
-#: templates/question.html:456
+#: templates/question.html:417
+msgid "Be the first one to answer this question!"
+msgstr ""
+
+#: templates/question.html:423
msgid "you can answer anonymously and then login"
-msgstr "puedes responder de forma anónima y luego ingresar"
+msgstr ""
-#: templates/question.html:479
-msgid "Answer the question"
-msgstr "Responde la pregunta"
+#: templates/question.html:427
+msgid "answer your own question only to give an answer"
+msgstr ""
-#: templates/question.html:481
-msgid "Notify me daily if there are any new answers."
-msgstr "Notificarme diariamente si hay nuevas respuestas."
+#: templates/question.html:429
+msgid "please only give an answer, no discussions"
+msgstr ""
-#: templates/question.html:483
-msgid "once you sign in you will be able to subscribe for any updates here"
+#: templates/question.html:465
+msgid "Login/Signup to Post Your Answer"
+msgstr ""
+
+#: templates/question.html:468
+msgid "Answer Your Own Question"
msgstr ""
-"una vez que hayas ingresado podrás suscribirte a cualquiera de las "
-"actualizaciones aquí."
-#: templates/question.html:494
+#: templates/question.html:470
+msgid "Answer the question"
+msgstr ""
+
+#: templates/question.html:483
msgid "Question tags"
-msgstr "Tags de la pregunta"
+msgstr ""
-#: templates/question.html:504
+#: templates/question.html:493
msgid "question asked"
-msgstr "pregunta preguntada"
-
-#: templates/question.html:504 templates/question.html.py:510
-#: templates/user_info.html:51
-msgid "ago"
-msgstr " atras"
+msgstr ""
-#: templates/question.html:507
+#: templates/question.html:496
msgid "question was seen"
-msgstr "la pregunta fue vista"
+msgstr ""
-#: templates/question.html:507
+#: templates/question.html:496
msgid "times"
-msgstr "veces"
+msgstr ""
-#: templates/question.html:510
+#: templates/question.html:499
msgid "last updated"
-msgstr "última vez actualizada"
+msgstr ""
-#: templates/question.html:515
+#: templates/question.html:504
msgid "Related questions"
-msgstr "Preguntas relacionadas"
+msgstr ""
-#: templates/question_edit.html:4 templates/question_edit.html.py:65
+#: templates/question_edit.html:5 templates/question_edit.html.py:66
msgid "Edit question"
-msgstr "Editar pregunta"
+msgstr ""
#: templates/question_edit_tips.html:4
msgid "question tips"
-msgstr "sugerencias sobre pregunta"
+msgstr ""
#: templates/question_edit_tips.html:7
msgid "please ask a relevant question"
-msgstr "por favor hacer preguntas relevantes"
+msgstr ""
#: templates/question_edit_tips.html:10
msgid "please try provide enough details"
-msgstr "intente proveer suficientes detalles"
+msgstr ""
-#: templates/question_retag.html:3 templates/question_retag.html.py:52
+#: templates/question_retag.html:4 templates/question_retag.html.py:53
msgid "Change tags"
-msgstr "Cambiar etiquetas"
+msgstr ""
-#: templates/question_retag.html:39
+#: templates/question_retag.html:40
msgid "up to 5 tags, less than 20 characters each"
-msgstr "hasta 5 etiquetas, menos de 20 caracteres cada una"
+msgstr ""
-#: templates/question_retag.html:82
+#: templates/question_retag.html:83
msgid "Why use and modify tags?"
-msgstr "¿Porqué usar y modificar etiquetas?"
+msgstr ""
-#: templates/question_retag.html:85
+#: templates/question_retag.html:86
msgid "tags help us keep Questions organized"
-msgstr "las etiquetas nos permiten mantener las Preguntas organizadas"
+msgstr ""
-#: templates/question_retag.html:91
+#: templates/question_retag.html:94
msgid "tag editors receive special awards from the community"
msgstr ""
-"los editores de etiquetas reciben distinciones especiales de la comunidad"
-#: templates/questions.html:23
+#: templates/questions.html:28 templates/questions.html.py:32
msgid "Found by tags"
-msgstr "Encontradas por etiqueta"
+msgstr ""
-#: templates/questions.html:23
+#: templates/questions.html:28 templates/questions.html.py:38
msgid "Found by title"
-msgstr "Encontradas por título"
+msgstr ""
-#: templates/questions.html:23
+#: templates/questions.html:28 templates/questions.html.py:44
msgid "All questions"
-msgstr "Todas las preguntas"
+msgstr ""
+
+#: templates/questions.html:36
+msgid "Search results"
+msgstr ""
+
+#: templates/questions.html:42 templates/unanswered.html:8
+#: templates/unanswered.html.py:19
+msgid "Unanswered questions"
+msgstr ""
-#: templates/questions.html:25 templates/unanswered.html:20
+#: templates/questions.html:51 templates/unanswered.html:21
msgid "most recently asked questions"
-msgstr "preguntas hechas más recientemente"
+msgstr ""
-#: templates/questions.html:26
-msgid "most recently updated questions"
-msgstr "preguntas actualizadas más recientemente"
+#: templates/questions.html:143
+msgid "Category: "
+msgstr ""
-#: templates/questions.html:26
-msgid "active"
-msgstr "actividad"
+#: templates/questions.html:149
+msgid "Did not find anything?"
+msgstr ""
+
+#: templates/questions.html:152
+msgid "Did not find what you were looking for?"
+msgstr ""
+
+#: templates/questions.html:154
+msgid "Please, post your question!"
+msgstr ""
-#: templates/questions.html:109
+#: templates/questions.html:169
#, python-format
msgid ""
"\n"
@@ -1889,15 +2300,9 @@ msgid_plural ""
"\t\t\thave total %(q_num)s questions tagged %(tagname)s\n"
"\t\t\t"
msgstr[0] ""
-"\n"
-"\t\t\ttiene un total de %(q_num)s preguntas etiquetadas con %(tagname)s\n"
-"\t\t\t"
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
+#: templates/questions.html:176
#, python-format
msgid ""
"\n"
@@ -1908,16 +2313,10 @@ msgid_plural ""
"\t\t\t\thave total %(q_num)s questions containing %(searchtitle)s\n"
"\t\t\t\t"
msgstr[0] ""
-"\n"
-"\t\t\thay un total de %(q_num)s preguntas que contienen %(searchtitle)s\n"
-"\t\t\t"
msgstr[1] ""
-"\n"
-"\t\t\thay un total de %(q_num)s pregunta que contiene %(searchtitle)s\n"
-"\t\t\t"
-#: templates/questions.html:122
-#, fuzzy, python-format
+#: templates/questions.html:182
+#, python-format
msgid ""
"\n"
"\t\t\t\thave total %(q_num)s questions\n"
@@ -1926,628 +2325,750 @@ msgid_plural ""
"\n"
"\t\t\t\thave total %(q_num)s questions\n"
"\t\t\t\t"
-msgstr[0] "ver preguntas etiquetadas '%(tagname)s'"
-msgstr[1] "ver pregunta etiquetada '%(tagname)s'"
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/questions.html:191
+#, python-format
+msgid ""
+"\n"
+" have total %(q_num)s questions tagged %(tagname)s\n"
+" "
+msgid_plural ""
+"\n"
+" have total %(q_num)s questions tagged %(tagname)s\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/questions.html:199
+#, python-format
+msgid ""
+"\n"
+" have total %(q_num)s questions containing %(searchtitle)"
+"s in full text\n"
+" "
+msgid_plural ""
+"\n"
+" have total %(q_num)s questions containing %(searchtitle)"
+"s in full text\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/questions.html:205
+#, python-format
+msgid ""
+"\n"
+" have total %(q_num)s questions containing %(searchtitle)"
+"s\n"
+" "
+msgid_plural ""
+"\n"
+" have total %(q_num)s questions containing %(searchtitle)"
+"s\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/questions.html:213
+#, python-format
+msgid ""
+"\n"
+" have total %(q_num)s unanswered questions\n"
+" "
+msgid_plural ""
+"\n"
+" have total %(q_num)s unanswered questions\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/questions.html:219
+#, python-format
+msgid ""
+"\n"
+" have total %(q_num)s questions\n"
+" "
+msgid_plural ""
+"\n"
+" have total %(q_num)s questions\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/questions.html:131
+#: templates/questions.html:230
msgid "latest questions info"
-msgstr "<strong>Más recientes</strong> preguntas son mostradas primero."
+msgstr ""
-#: templates/questions.html:135
+#: templates/questions.html:234
msgid "Questions are sorted by the <strong>time of last update</strong>."
msgstr ""
-"Las preguntas estan ordenadas por <strong>fecha de último update</strong>."
-#: templates/questions.html:136
+#: templates/questions.html:235
msgid "Most recently answered ones are shown first."
-msgstr "Las más recientemente respondidas son mostradas primero."
+msgstr ""
-#: templates/questions.html:140
+#: templates/questions.html:239
msgid "Questions sorted by <strong>number of responses</strong>."
-msgstr "Preguntas ordenadas por <strong>número de respuestas</strong>."
+msgstr ""
-#: templates/questions.html:141
+#: templates/questions.html:240
msgid "Most answered questions are shown first."
-msgstr "Preguntas más respondidas aparecen primero."
+msgstr ""
-#: templates/questions.html:145
+#: templates/questions.html:244
msgid "Questions are sorted by the <strong>number of votes</strong>."
-msgstr "Las preguntas son ordenadas por el <strong>número de votos</strong>."
+msgstr ""
-#: templates/questions.html:146
+#: templates/questions.html:245
msgid "Most voted questions are shown first."
-msgstr "Las preguntas más votadas son mostradas primero."
+msgstr ""
-#: templates/questions.html:153 templates/unanswered.html:102
+#: templates/questions.html:253 templates/unanswered.html:118
msgid "Related tags"
-msgstr "Etiquetas relacionadas"
+msgstr ""
+
+#: templates/questions.html:263 templates/tag_selector.html:10
+#: templates/tag_selector.html.py:27
+#, python-format
+msgid "see questions tagged '%(tag_name)s'"
+msgstr ""
#: templates/reopen.html:6 templates/reopen.html.py:16
msgid "Reopen question"
-msgstr "Re-abrir pregunta"
+msgstr ""
#: templates/reopen.html:19
msgid "Open the previously closed question"
-msgstr "Abrir pregunta previamente cerrada"
+msgstr ""
#: templates/reopen.html:22
msgid "The question was closed for the following reason "
-msgstr "La pregunta fue cerrada por el siguiente motivo "
+msgstr ""
#: templates/reopen.html:22
msgid "reason - leave blank in english"
-msgstr "razón - "
+msgstr ""
#: templates/reopen.html:22
msgid "on "
-msgstr "el "
+msgstr ""
#: templates/reopen.html:22
msgid "date closed"
-msgstr "fecha cerrada"
+msgstr ""
#: templates/reopen.html:29
msgid "Reopen this question"
-msgstr "Re-abrir esta pregunta"
+msgstr ""
-#: templates/revisions_answer.html:7 templates/revisions_answer.html.py:36
-#: templates/revisions_question.html:8 templates/revisions_question.html:36
+#: templates/revisions_answer.html:7 templates/revisions_answer.html.py:38
+#: templates/revisions_question.html:8 templates/revisions_question.html:38
msgid "Revision history"
-msgstr "Historial de revisiones"
+msgstr ""
+
+#: templates/revisions_answer.html:50 templates/revisions_question.html:50
+msgid "click to hide/show revision"
+msgstr ""
+
+#: templates/tag_selector.html:4
+msgid "Interesting tags"
+msgstr ""
+
+#: templates/tag_selector.html:14
+#, python-format
+msgid "remove '%(tag_name)s' from the list of interesting tags"
+msgstr ""
+
+#: templates/tag_selector.html:20 templates/tag_selector.html.py:37
+msgid "Add"
+msgstr ""
+
+#: templates/tag_selector.html:21
+msgid "Ignored tags"
+msgstr ""
+
+#: templates/tag_selector.html:31
+#, python-format
+msgid "remove '%(tag_name)s' from the list of ignored tags"
+msgstr ""
+
+#: templates/tag_selector.html:40
+msgid "keep ingored questions hidden"
+msgstr ""
#: templates/tags.html:6 templates/tags.html.py:30
msgid "Tag list"
-msgstr "Lista de etiquetas"
+msgstr ""
#: templates/tags.html:32
msgid "sorted alphabetically"
-msgstr "ordenar alfabéticamente"
+msgstr ""
#: templates/tags.html:32
msgid "by name"
-msgstr "por nombre"
+msgstr ""
#: templates/tags.html:33
msgid "sorted by frequency of tag use"
-msgstr "ordenar por frecuencia de uso de la etiqueta"
+msgstr ""
#: templates/tags.html:33
msgid "by popularity"
-msgstr "por popularidad"
+msgstr ""
#: templates/tags.html:39
msgid "All tags matching query"
-msgstr "Todas las etiquetas que coincidan con la busqueda"
+msgstr ""
#: templates/tags.html:39
msgid "all tags - make this empty in english"
-msgstr "todas las tags"
+msgstr ""
#: templates/tags.html:42
msgid "Nothing found"
-msgstr "Nada encontrado"
-
-#: templates/unanswered.html:7 templates/unanswered.html.py:18
-msgid "Unanswered questions"
-msgstr "Preguntas sin respuesta"
+msgstr ""
-#: templates/unanswered.html:97
+#: templates/unanswered.html:114
#, python-format
msgid "have %(num_q)s unanswered questions"
msgstr ""
-"<div class=\"questions-count\">%(num_q)s</div> preguntas <strong>sin "
-"respuesta</strong> "
#: templates/user_edit.html:6
msgid "Edit user profile"
-msgstr "Editar perfil de usuario"
+msgstr ""
#: templates/user_edit.html:19
msgid "edit profile"
-msgstr "editar perfil"
+msgstr ""
#: templates/user_edit.html:31
msgid "image associated with your email address"
-msgstr "imagen asociada con tu email"
+msgstr ""
#: templates/user_edit.html:31
-msgid "avatar"
-msgstr "avatar"
+#, python-format
+msgid "avatar, see %(gravatar_faq_url)s"
+msgstr ""
-#: templates/user_edit.html:36 templates/user_info.html:31
+#: templates/user_edit.html:36 templates/user_info.html:56
msgid "Registered user"
-msgstr "Usuario registrado"
+msgstr ""
-#: templates/user_edit.html:82
+#: templates/user_edit.html:86 templates/user_email_subscriptions.html:23
msgid "Update"
-msgstr "Actualización"
+msgstr ""
+
+#: templates/user_email_subscriptions.html:8
+msgid "Email subscription settings"
+msgstr ""
-#: templates/user_info.html:34
+#: templates/user_email_subscriptions.html:9
+msgid "email subscription settings info"
+msgstr ""
+
+#: templates/user_email_subscriptions.html:24
+msgid "Stop sending email"
+msgstr ""
+
+#: templates/user_info.html:22
+msgid "karma"
+msgstr ""
+
+#: templates/user_info.html:32
+msgid "Moderate this user"
+msgstr ""
+
+#: templates/user_info.html:45
msgid "update profile"
-msgstr "actualizar perfil de usuario"
+msgstr ""
-#: templates/user_info.html:40
+#: templates/user_info.html:60
msgid "real name"
-msgstr "nombre real"
+msgstr ""
-#: templates/user_info.html:45
+#: templates/user_info.html:65
msgid "member for"
-msgstr "miembro de"
+msgstr ""
-#: templates/user_info.html:50
+#: templates/user_info.html:70
msgid "last seen"
-msgstr "última vez visto"
+msgstr ""
-#: templates/user_info.html:56
+#: templates/user_info.html:76
msgid "user website"
-msgstr "sitio web del usuario"
+msgstr ""
-#: templates/user_info.html:62
+#: templates/user_info.html:82
msgid "location"
-msgstr "ubicación"
+msgstr ""
-#: templates/user_info.html:69
+#: templates/user_info.html:89
msgid "age"
-msgstr "edad"
+msgstr ""
-#: templates/user_info.html:70
+#: templates/user_info.html:90
msgid "age unit"
-msgstr "unidad de edad"
+msgstr ""
-#: templates/user_info.html:76
+#: templates/user_info.html:96
msgid "todays unused votes"
-msgstr "votos de hoy no usados"
+msgstr ""
-#: templates/user_info.html:77
+#: templates/user_info.html:97
msgid "votes left"
-msgstr "votos restantes"
-
-#: templates/user_preferences.html:10
-msgid "Connect with Twitter"
-msgstr "Conectar con Twitter"
-
-#: templates/user_preferences.html:13
-msgid "Twitter account name:"
-msgstr "Nombre de usuario en Twitter:"
-
-#: templates/user_preferences.html:15
-msgid "Twitter password:"
-msgstr "Contraseña de Twitter:"
-
-#: templates/user_preferences.html:17
-msgid "Send my Questions to Twitter"
-msgstr "Enviar mis preguntas a Twitter"
-
-#: templates/user_preferences.html:18
-msgid "Send my Answers to Twitter"
-msgstr "Enviar mis respuestas a Twitter"
+msgstr ""
-#: templates/user_preferences.html:19
-msgid "Save"
-msgstr "Guardar"
+#: templates/user_stats.html:12
+#, python-format
+msgid ""
+"\n"
+" <span class=\"count\">1</span> Question\n"
+" "
+msgid_plural ""
+"\n"
+" <span class=\"count\">%(counter)s</span> Questions\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/user_stats.html:16
-msgid "User questions"
-msgstr "Preguntas del usuario"
+#: templates/user_stats.html:23
+#, python-format
+msgid ""
+"\n"
+" <span class=\"count\">1</span> Answer\n"
+" "
+msgid_plural ""
+"\n"
+" <span class=\"count\">%(counter)s</span> Answers\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/user_stats.html:38
+#: templates/user_stats.html:36
#, python-format
msgid "the answer has been voted for %(vote_count)s times"
-msgstr "la respuesta ha sido votada %(vote_count)s veces"
+msgstr ""
-#: templates/user_stats.html:38
+#: templates/user_stats.html:36
msgid "this answer has been selected as correct"
-msgstr "esta respuesta ha sido seleccionada como correcta"
+msgstr ""
#: templates/user_stats.html:46
#, python-format
-msgid "the answer has been commented %(comment_count)s times"
-msgstr "la respuesta ha sido comentada %(comment_count)s veces"
+msgid ""
+"\n"
+" (one comment)\n"
+" "
+msgid_plural ""
+"\n"
+" the answer has been commented %(comment_count)s times\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
+
+#: templates/user_stats.html:61
+#, python-format
+msgid ""
+"\n"
+" <span class=\"count\">1</span> Vote\n"
+" "
+msgid_plural ""
+"\n"
+" <span class=\"count\">%(cnt)s</span> Votes\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/user_stats.html:60
-msgid "votes total"
-msgstr "votos totales"
+#: templates/user_stats.html:72
+msgid "thumb up"
+msgstr ""
-#: templates/user_stats.html:69
+#: templates/user_stats.html:73
msgid "user has voted up this many times"
-msgstr "el usuario ha votado positivo esta cantidad de veces"
+msgstr ""
-#: templates/user_stats.html:74
+#: templates/user_stats.html:77
+msgid "thumb down"
+msgstr ""
+
+#: templates/user_stats.html:78
msgid "user voted down this many times"
-msgstr "el usuario voto negativo esta cantidad de veces"
+msgstr ""
#: templates/user_stats.html:87
-msgid "Tags"
-msgstr "Etiquetas"
+#, python-format
+msgid ""
+"\n"
+" <span class=\"count\">1</span> Tag\n"
+" "
+msgid_plural ""
+"\n"
+" <span class=\"count\">%(counter)s</span> Tags\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
-#: templates/user_stats.html:97
+#: templates/user_stats.html:100
#, python-format
-msgid "see other questions tagged '%(tag)s' "
-msgstr "ver otras preguntas etiqueteadas '%(tag)s'"
+msgid ""
+"see other questions with %(view_user)s's contributions tagged '%(tag_name)s' "
+msgstr ""
+
+#: templates/user_stats.html:115
+#, python-format
+msgid ""
+"\n"
+" <span class=\"count\">1</span> Badge\n"
+" "
+msgid_plural ""
+"\n"
+" <span class=\"count\">%(counter)s</span> Badges\n"
+" "
+msgstr[0] ""
+msgstr[1] ""
#: templates/user_tabs.html:7
msgid "User profile"
-msgstr "Perfil de usuario"
+msgstr ""
#: templates/user_tabs.html:16
msgid "graph of user reputation"
-msgstr "gráfica de la reputación del usuario"
+msgstr ""
#: templates/user_tabs.html:17
msgid "reputation history"
-msgstr "historial de reputación"
+msgstr ""
+
+#: templates/user_tabs.html:23
+msgid "questions that user selected as his/her favorite"
+msgstr ""
#: templates/user_tabs.html:24
msgid "favorites"
-msgstr "favoritos"
-
-#: templates/user_tabs.html:28
-msgid "settings"
-msgstr "preferencias"
+msgstr ""
#: templates/users.html:6 templates/users.html.py:24
msgid "Users"
-msgstr "Usuarios"
+msgstr ""
#: templates/users.html:27
msgid "recent"
-msgstr "reciente"
+msgstr ""
#: templates/users.html:28
msgid "oldest"
-msgstr "más viejo"
+msgstr ""
#: templates/users.html:29
msgid "by username"
-msgstr "por nombre de usuario"
+msgstr ""
#: templates/users.html:35
#, python-format
msgid "users matching query %(suser)s:"
-msgstr "usuarios que coincidan con la busqueda %(suser)s:"
+msgstr ""
#: templates/users.html:39
msgid "Nothing found."
-msgstr "Nada encontrado."
+msgstr ""
#: templates/users_questions.html:11
msgid "this questions was selected as favorite"
-msgstr "esta pregunta ha sido seleccionada como favorita"
+msgstr ""
+
+#: templates/users_questions.html:12
+msgid "thumb-up on"
+msgstr ""
-#: templates/users_questions.html:33
+#: templates/users_questions.html:19
+msgid "thumb-up off"
+msgstr ""
+
+#: templates/users_questions.html:34
msgid "this answer has been accepted to be correct"
-msgstr "esta respuesta ha sido aceptada como correcta"
+msgstr ""
-#: templates/authopenid/changeemail.html:7
-#: templates/authopenid/changeemail.html:33
+#: templates/authopenid/changeemail.html:3
+#: templates/authopenid/changeemail.html:9
+#: templates/authopenid/changeemail.html:38
msgid "Change email"
-msgstr "Cambiar dirección email"
+msgstr ""
-#: templates/authopenid/changeemail.html:10
+#: templates/authopenid/changeemail.html:11
+msgid "Save your email address"
+msgstr ""
+
+#: templates/authopenid/changeemail.html:16
#, python-format
msgid "change %(email)s info"
-msgstr "Cambiar información del correo electrónico %(email)s"
+msgstr ""
-#: templates/authopenid/changeemail.html:13
-#: templates/authopenid/changeopenid.html:14
-#: templates/authopenid/changepw.html:19 templates/authopenid/delete.html:15
-#: templates/authopenid/delete.html:25
-msgid "Please correct errors below:"
-msgstr "Por favor corrija los errores debajo: "
+#: templates/authopenid/changeemail.html:18
+#, python-format
+msgid "here is why email is required, see %(gravatar_faq_url)s"
+msgstr ""
-#: templates/authopenid/changeemail.html:30
+#: templates/authopenid/changeemail.html:31
msgid "Your new Email"
-msgstr "Tu nuevo Email"
+msgstr ""
#: templates/authopenid/changeemail.html:31
-#: templates/authopenid/signin.html:136
-msgid "Password"
-msgstr "Contraseña"
+msgid "Your Email"
+msgstr ""
-#: templates/authopenid/changeemail.html:42
-#, fuzzy
+#: templates/authopenid/changeemail.html:38
+msgid "Save Email"
+msgstr ""
+
+#: templates/authopenid/changeemail.html:49
msgid "Validate email"
-msgstr "Cambiar dirección email"
+msgstr ""
-#: templates/authopenid/changeemail.html:45
+#: templates/authopenid/changeemail.html:52
#, python-format
-msgid "validate %(email)s info"
-msgstr "validar información de %(email)s "
+msgid "validate %(email)s info or go to %(change_email_url)s"
+msgstr ""
-#: templates/authopenid/changeemail.html:50
+#: templates/authopenid/changeemail.html:57
msgid "Email not changed"
-msgstr "Email no modificado."
+msgstr ""
-#: templates/authopenid/changeemail.html:53
+#: templates/authopenid/changeemail.html:60
#, python-format
-msgid "old %(email)s kept"
-msgstr "se ha conservado el viejo email %(email)s "
+msgid "old %(email)s kept, if you like go to %(change_email_url)s"
+msgstr ""
-#: templates/authopenid/changeemail.html:58
+#: templates/authopenid/changeemail.html:65
msgid "Email changed"
-msgstr "Email modificado."
+msgstr ""
-#: templates/authopenid/changeemail.html:61
+#: templates/authopenid/changeemail.html:68
#, python-format
msgid "your current %(email)s can be used for this"
-msgstr "tu email actual %(email)s puede ser usado para esto"
+msgstr ""
-#: templates/authopenid/changeemail.html:66
+#: templates/authopenid/changeemail.html:73
msgid "Email verified"
-msgstr "Email verificado"
+msgstr ""
-#: templates/authopenid/changeemail.html:69
+#: templates/authopenid/changeemail.html:76
msgid "thanks for verifying email"
-msgstr "gracias por verificar su correo"
+msgstr ""
-#: templates/authopenid/changeemail.html:74
+#: templates/authopenid/changeemail.html:81
msgid "email key not sent"
-msgstr "llave de correo no enviada"
+msgstr ""
-#: templates/authopenid/changeemail.html:77
+#: templates/authopenid/changeemail.html:84
#, python-format
msgid "email key not sent %(email)s change email here %(change_link)s"
-msgstr "email no enviado %(email)s cambiar email aquí %(change_link)s"
+msgstr ""
+
+#: templates/authopenid/changeopenid.html:4
+#: templates/authopenid/changeopenid.html:30
+#: templates/authopenid/settings.html:34
+msgid "Change OpenID"
+msgstr ""
#: templates/authopenid/changeopenid.html:8
msgid "Account: change OpenID URL"
-msgstr "Cuenta: cambiar la URL de OpenID"
+msgstr ""
#: templates/authopenid/changeopenid.html:12
msgid ""
"This is where you can change your OpenID URL. Make sure you remember it!"
-msgstr "Aquí es donde puedes cambiar tu OpenID URL. Asegurate de recordarla!"
+msgstr ""
+
+#: templates/authopenid/changeopenid.html:14
+#: templates/authopenid/delete.html:14 templates/authopenid/delete.html:24
+msgid "Please correct errors below:"
+msgstr ""
#: templates/authopenid/changeopenid.html:29
msgid "OpenID URL:"
-msgstr "URL de OpenID:"
+msgstr ""
-#: templates/authopenid/changeopenid.html:30
-msgid "Change OpenID"
-msgstr "Cambiar OpenID"
+#: templates/authopenid/changepw.html:5 templates/authopenid/changepw.html:14
+#: templates/authopenid/settings.html:29
+msgid "Change password"
+msgstr ""
-#: templates/authopenid/changepw.html:14
+#: templates/authopenid/changepw.html:7
msgid "Account: change password"
-msgstr "Cuenta: cambiar contraseña"
+msgstr ""
-#: templates/authopenid/changepw.html:17
+#: templates/authopenid/changepw.html:8
msgid "This is where you can change your password. Make sure you remember it!"
-msgstr "Aquí es donde puedes cambiar tu contraseña. Asegurate de recordarlo!"
-
-#: templates/authopenid/changepw.html:27
-msgid "Current password"
-msgstr "Contraseña actual"
-
-#: templates/authopenid/changepw.html:28
-msgid "New password"
-msgstr "Nueva contraseña"
-
-#: templates/authopenid/changepw.html:29
-msgid "New password again"
-msgstr "Nueva contraseña nuevamente"
-
-#: templates/authopenid/changepw.html:30 templates/authopenid/settings.html:29
-msgid "Change password"
-msgstr "Cambiar contraseña"
+msgstr ""
-#: templates/authopenid/complete.html:5
+#: templates/authopenid/complete.html:19
msgid "Connect your OpenID with this site"
-msgstr "Vincular tu OpenID con este sitio"
+msgstr ""
-#: templates/authopenid/complete.html:8
+#: templates/authopenid/complete.html:22
msgid "Connect your OpenID with your account on this site"
-msgstr "Vincular tu OpenID con tu cuenta en este sitio"
+msgstr ""
+
+#: templates/authopenid/complete.html:27
+#, python-format
+msgid "register new %(provider)s account info, see %(gravatar_faq_url)s"
+msgstr ""
+
+#: templates/authopenid/complete.html:31
+#, python-format
+msgid ""
+"%(username)s already exists, choose another name for \n"
+" %(provider)s. Email is required too, see %"
+"(gravatar_faq_url)s\n"
+" "
+msgstr ""
-#: templates/authopenid/complete.html:12
+#: templates/authopenid/complete.html:35
#, python-format
-msgid "register new %(provider)s account info"
-msgstr "Registrar una nueva cuenta %(provider)s."
+msgid ""
+"register new external %(provider)s account info, see %(gravatar_faq_url)s"
+msgstr ""
-#: templates/authopenid/complete.html:14
+#: templates/authopenid/complete.html:40
msgid "This account already exists, please use another."
-msgstr "Esta cuenta ya existe, por favor usar otra."
+msgstr ""
-#: templates/authopenid/complete.html:19 templates/authopenid/complete.html:32
-#: templates/authopenid/signin.html:120
+#: templates/authopenid/complete.html:55
msgid "Sorry, looks like we have some errors:"
-msgstr "Ups, parece que hay errores:"
+msgstr ""
-#: templates/authopenid/complete.html:47
+#: templates/authopenid/complete.html:76
msgid "Screen name label"
-msgstr "Nombre de Usuario"
+msgstr ""
-#: templates/authopenid/complete.html:48
+#: templates/authopenid/complete.html:83
msgid "Email address label"
-msgstr "Su email (correo electrónico)"
+msgstr ""
+
+#: templates/authopenid/complete.html:89 templates/authopenid/signup.html:15
+msgid "receive updates motivational blurb"
+msgstr ""
+
+#: templates/authopenid/complete.html:93
+msgid "Tag filter tool will be your right panel, once you log in."
+msgstr ""
-#: templates/authopenid/complete.html:49
+#: templates/authopenid/complete.html:95
msgid "create account"
-msgstr "crear cuenta"
+msgstr ""
-#: templates/authopenid/complete.html:56
+#: templates/authopenid/complete.html:104
msgid "Existing account"
-msgstr "Cuenta existente"
+msgstr ""
-#: templates/authopenid/complete.html:57
+#: templates/authopenid/complete.html:105
msgid "user name"
-msgstr "nombre de usuario"
+msgstr ""
-#: templates/authopenid/complete.html:58
+#: templates/authopenid/complete.html:106
msgid "password"
-msgstr "contraseña"
-
-#: templates/authopenid/complete.html:61
-msgid "Register"
-msgstr "Registrarse"
-
-#: templates/authopenid/complete.html:62 templates/authopenid/signin.html:138
-msgid "Forgot your password?"
-msgstr "¿Olvidaste tu contraseña?"
-
-#: templates/authopenid/confirm_email.txt:2
-msgid "Thank you for registering at our Q&A forum!"
msgstr ""
-#: templates/authopenid/confirm_email.txt:4
-msgid "Your account details are:"
+#: templates/authopenid/complete.html:111
+msgid "Register"
msgstr ""
-#: templates/authopenid/confirm_email.txt:6
-#: templates/authopenid/sendpw_email.txt:7
-msgid "Username:"
-msgstr "Nombre de usuario:"
-
-#: templates/authopenid/confirm_email.txt:7
-#: templates/authopenid/delete.html:20
-msgid "Password:"
-msgstr "Contraseña"
-
-#: templates/authopenid/confirm_email.txt:9
-msgid "Please sign in here:"
+#: templates/authopenid/complete.html:112 templates/authopenid/signin.html:140
+msgid "Forgot your password?"
msgstr ""
-#: templates/authopenid/confirm_email.txt:12
-#: templates/authopenid/email_validation.txt:14
-#: templates/authopenid/sendpw_email.txt:13
-msgid ""
-"Sincerely,\n"
-"Forum Administrator"
+#: templates/authopenid/delete.html:4 templates/authopenid/settings.html:38
+msgid "Delete account"
msgstr ""
-#: templates/authopenid/delete.html:9
+#: templates/authopenid/delete.html:8
msgid "Account: delete account"
-msgstr "Cuenta: borrar cuenta"
+msgstr ""
-#: templates/authopenid/delete.html:13
+#: templates/authopenid/delete.html:12
msgid ""
"Note: After deleting your account, anyone will be able to register this "
"username."
msgstr ""
-"Nota: Luego de borrar tu cuenta, cualquiera va a poder registrarse con este "
-"nombre de usuario."
-#: templates/authopenid/delete.html:17
+#: templates/authopenid/delete.html:16
msgid "Check confirm box, if you want delete your account."
-msgstr "Marca caja de confirmación, si deseas borrar tu cuenta."
+msgstr ""
-#: templates/authopenid/delete.html:32
+#: templates/authopenid/delete.html:19
+msgid "Password:"
+msgstr ""
+
+#: templates/authopenid/delete.html:31
msgid "I am sure I want to delete my account."
-msgstr "Estoy seguro que quiero borrar mi cuenta."
+msgstr ""
-#: templates/authopenid/delete.html:33
+#: templates/authopenid/delete.html:32
msgid "Password/OpenID URL"
-msgstr "Contraseña/OpenID URL"
+msgstr ""
-#: templates/authopenid/delete.html:33
+#: templates/authopenid/delete.html:32
msgid "(required for your security)"
-msgstr "(requerido por tu seguridad)"
-
-#: templates/authopenid/delete.html:35
-msgid "Delete account permanently"
-msgstr "Borrar la cuenta de forma permanente"
-
-#: templates/authopenid/email_validation.txt:2
-msgid "Greetings from the Q&A forum"
msgstr ""
-#: templates/authopenid/email_validation.txt:4
-msgid "To make use of the Forum, please follow the link below:"
+#: templates/authopenid/delete.html:34
+msgid "Delete account permanently"
msgstr ""
-#: templates/authopenid/email_validation.txt:8
-msgid "Following the link above will help us verify your email address."
+#: templates/authopenid/external_legacy_login_info.html:4
+#: templates/authopenid/external_legacy_login_info.html:7
+msgid "Traditional login information"
msgstr ""
-#: templates/authopenid/email_validation.txt:10
-msgid ""
-"If you beleive that this message was sent in mistake - \n"
-"no further action is needed. Just ingore this email, we apologize\n"
-"for any inconvenience"
+#: templates/authopenid/external_legacy_login_info.html:17
+msgid "how to login with password through external login website"
msgstr ""
-#: templates/authopenid/sendpw.html:4 templates/authopenid/sendpw.html.py:8
+#: templates/authopenid/sendpw.html:4 templates/authopenid/sendpw.html.py:7
msgid "Send new password"
-msgstr "Enviar nueva contraseña"
-
-#: templates/authopenid/sendpw.html:12
-msgid "Lost your password? No problem - here you can reset it."
-msgstr "¿Haz perdido tu contraseña? No hay problema - aquí puedes re-crearla."
-
-#: templates/authopenid/sendpw.html:13
-msgid ""
-"Please enter your username below and new password will be sent to your "
-"registered e-mail"
msgstr ""
-"Por favor, ingresa tu nombre de usuario y una nueva contraseña será enviada "
-"a la dirección de email registrada."
-
-#: templates/authopenid/sendpw.html:28
-msgid "User name"
-msgstr "Nombre de usuario"
-
-#: templates/authopenid/sendpw.html:30
-msgid "Reset password"
-msgstr "Re-crear contraseña"
-
-#: templates/authopenid/sendpw.html:30
-msgid "return to login"
-msgstr "volver a 'Ingresar'"
-#: templates/authopenid/sendpw.html:33
-msgid ""
-"Note: your new password will be activated only after you click the "
-"activation link in the email message"
+#: templates/authopenid/sendpw.html:10
+msgid "password recovery information"
msgstr ""
-"Nota: tu nueva contraseña solo será activada luego de que hagas click en el "
-"link de activación en el email enviado."
-#: templates/authopenid/sendpw_email.txt:2
-#, python-format
-msgid ""
-"Someone has requested to reset your password on %(site_url)s.\n"
-"If it were not you, it is safe to ignore this email."
+#: templates/authopenid/sendpw.html:21
+msgid "Reset password"
msgstr ""
-#: templates/authopenid/sendpw_email.txt:5
-msgid "Your new account details are:"
+#: templates/authopenid/sendpw.html:22
+msgid "return to login"
msgstr ""
-#: templates/authopenid/sendpw_email.txt:8
-#, fuzzy
-msgid "New password:"
-msgstr "Nueva contraseña:"
-
-#: templates/authopenid/sendpw_email.txt:10
-msgid "To confirm that you wanted to reset your password please visit:"
+#: templates/authopenid/settings.html:4
+msgid "Account functions"
msgstr ""
#: templates/authopenid/settings.html:30
msgid "Give your account a new password."
-msgstr "Crea una nueva contraseña para tu cuenta."
+msgstr ""
#: templates/authopenid/settings.html:31
msgid "Change email "
-msgstr "Cambiar email "
+msgstr ""
#: templates/authopenid/settings.html:32
msgid "Add or update the email address associated with your account."
-msgstr "Agrega o actualiza el email asociado a tu cuenta."
+msgstr ""
#: templates/authopenid/settings.html:35
msgid "Change openid associated to your account"
-msgstr "Cambia el OpenID asociado a tu cuenta"
-
-#: templates/authopenid/settings.html:38
-msgid "Delete account"
-msgstr "Eliminar cuenta"
+msgstr ""
#: templates/authopenid/settings.html:39
msgid "Erase your username and all your data from website"
-msgstr "Eliminar tu nombre de usuario y toda tu información del sitio"
+msgstr ""
-#: templates/authopenid/signin.html:4 templates/authopenid/signin.html:21
+#: templates/authopenid/signin.html:5 templates/authopenid/signin.html:21
msgid "User login"
-msgstr "Ingreso de usuario"
+msgstr ""
#: templates/authopenid/signin.html:28
#, python-format
@@ -2557,10 +3078,6 @@ 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
@@ -2569,127 +3086,85 @@ 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
+#: templates/authopenid/signin.html:42
msgid "Click to sign in through any of these services."
-msgstr "Clickea para entrar por cualquiera de estos servicios."
+msgstr ""
-#: templates/authopenid/signin.html:103
+#: templates/authopenid/signin.html:117
msgid "Enter your <span id=\"enter_your_what\">Provider user name</span>"
-msgstr "Ingresa tu <span id=\"enter_your_what\">nombre de usuario</span>"
+msgstr ""
-#: templates/authopenid/signin.html:110
+#: templates/authopenid/signin.html:124
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:137
+#: templates/authopenid/signin.html:126 templates/authopenid/signin.html:138
msgid "Login"
-msgstr "Ingresar"
+msgstr ""
-#: templates/authopenid/signin.html:116
-msgid "we support two login modes"
-msgstr "soportamos dos tipos de ingreso"
+#: templates/authopenid/signin.html:129
+msgid "Enter your login name and password"
+msgstr ""
-#: templates/authopenid/signin.html:134
-msgid "Use login name and password"
-msgstr "Nombre de usuario y contraseña"
+#: templates/authopenid/signin.html:133
+msgid "Login name"
+msgstr ""
#: templates/authopenid/signin.html:135
-msgid "Login name"
-msgstr "Nombre de usuario"
+msgid "Password"
+msgstr ""
#: templates/authopenid/signin.html:139
-msgid "Create new account"
-msgstr "Crear cuenta nueva"
+msgid "Create account"
+msgstr ""
-#: templates/authopenid/signin.html:148
+#: templates/authopenid/signin.html:149
msgid "Why use OpenID?"
-msgstr "¿Porqué usar OpenID?"
+msgstr ""
-#: templates/authopenid/signin.html:151
+#: templates/authopenid/signin.html:152
msgid "with openid it is easier"
-msgstr "Con OpenID no necesitas crear un nuevo nombre de usuario y contraseña."
+msgstr ""
-#: templates/authopenid/signin.html:154
+#: templates/authopenid/signin.html:155
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:157
+#: templates/authopenid/signin.html:158
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:160
+#: templates/authopenid/signin.html:161
msgid "openid is supported open standard"
msgstr ""
-"OpenID es basado en un standard abierto, apoyado por muchas organizaciones."
-#: templates/authopenid/signin.html:165
+#: templates/authopenid/signin.html:166
msgid "Find out more"
-msgstr "Averigua más"
+msgstr ""
-#: templates/authopenid/signin.html:166
+#: templates/authopenid/signin.html:167
msgid "Get OpenID"
-msgstr "Adquiere una OpenID"
+msgstr ""
-#: templates/authopenid/signup.html:4 templates/authopenid/signup.html.py:8
+#: templates/authopenid/signup.html:4
msgid "Signup"
-msgstr "Registrate"
+msgstr ""
-#: templates/authopenid/signup.html:12
-msgid ""
-"We support two types of user registration: conventional username/password, "
-"and"
+#: templates/authopenid/signup.html:8
+msgid "Create login name and password"
msgstr ""
-"Soportamos dos formas de registro de usuario: convencional usuario/"
-"contraseña, y"
-#: templates/authopenid/signup.html:12
-msgid "the OpenID method"
-msgstr "OpenID"
+#: templates/authopenid/signup.html:10
+msgid "Traditional signup info"
+msgstr ""
#: templates/authopenid/signup.html:17
-msgid "Sorry, looks like we have some errors"
-msgstr "Ups, parece que hay errores."
-
-#: templates/authopenid/signup.html:35
-msgid "Conventional registration"
-msgstr "Registro clásico"
-
-#: templates/authopenid/signup.html:36
-msgid "choose a user name"
-msgstr "elije un nombre de usuario"
-
-#: templates/authopenid/signup.html:42
-msgid "back to login"
-msgstr "volver al ingreso de usuario"
-
-#: templates/authopenid/signup.html:46
-msgid "Register with your OpenID"
-msgstr "Registrate con tu OpenID"
-
-#: templates/authopenid/signup.html:49
-msgid "Login with your OpenID"
-msgstr "Ingresar con tu OpenID"
-
-#~ msgid "site title"
-#~ msgstr "Preguntalo.com.uy"
-
-#~ msgid "Have a total of"
-#~ msgstr "Hay un total de"
-
-#~ msgid "/account/"
-#~ msgstr "/cuenta/"
+msgid "Create Account"
+msgstr ""
-#~ msgid "content/"
-#~ msgstr "contenido/"
+#: templates/authopenid/signup.html:19
+msgid "return to OpenID login"
+msgstr ""
diff --git a/rmpyc b/rmpyc
deleted file mode 100644
index 014575f6..00000000
--- a/rmpyc
+++ /dev/null
@@ -1 +0,0 @@
-rm `find . -name '*.pyc'`
diff --git a/settings.py b/settings.py
index 45685788..3bce2879 100644
--- a/settings.py
+++ b/settings.py
@@ -65,6 +65,7 @@ INSTALLED_APPS = (
#'debug_toolbar' ,
'user_messages',
)
-
+import django
+DJANGO_VERSION = django.get_version()
# User settings
from settings_local import *
diff --git a/settings_local.py.dist b/settings_local.py.dist
index 5447e517..136d4bdd 100644
--- a/settings_local.py.dist
+++ b/settings_local.py.dist
@@ -1,13 +1,24 @@
# encoding:utf-8
import os.path
+<<<<<<< HEAD:settings_local.py.dist
+=======
from django.utils.translation import ugettext as _
+>>>>>>> evgenyfadeev/master:settings_local.py.dist
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,)
+<<<<<<< HEAD:settings_local.py.dist
+
+DATABASE_NAME = '' # Or path to database file if using sqlite3.
+DATABASE_USER = '' # Not used with sqlite3.
+DATABASE_PASSWORD = '' # Not used with sqlite3.
+DATABASE_ENGINE = '' #mysql, etc
+<<<<<<< HEAD:settings_local.py.dist
+=======
#ADMINS and MANAGERS
ADMINS = (('Forum Admin', 'forum@example.com'),)
@@ -22,18 +33,32 @@ DATABASE_NAME = 'cnprog' # Or path to database file if using sqlite3
DATABASE_USER = '' # Not used with sqlite3.
DATABASE_PASSWORD = '' # Not used with sqlite3.
DATABASE_ENGINE = 'mysql' #mysql, etc
+>>>>>>> evgenyfadeev/master:settings_local.py.dist
#Moved from settings.py for better organization. (please check it up to clean up settings.py)
+=======
+
+#Moved from settings.py for better organization. (please check it up to clean up settings.py)
+
+>>>>>>> 6214863f362fd0702af79abaade0de6736d12e96:settings_local.py.dist
#email server settings
SERVER_EMAIL = ''
DEFAULT_FROM_EMAIL = ''
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''
+<<<<<<< HEAD:settings_local.py.dist
+EMAIL_SUBJECT_PREFIX = '[cnprog.com]'
+EMAIL_HOST='smtp.gmail.com'
+EMAIL_PORT='587'
+EMAIL_USE_TLS=True
+<<<<<<< HEAD:settings_local.py.dist
+=======
EMAIL_SUBJECT_PREFIX = '[CNPROG] '
EMAIL_HOST='cnprog.com'
EMAIL_PORT='25'
EMAIL_USE_TLS=False
+>>>>>>> evgenyfadeev/master:settings_local.py.dist
#LOCALIZATIONS
TIME_ZONE = 'America/Tijuana'
@@ -47,7 +72,22 @@ TIME_ZONE = 'America/Tijuana'
FORUM_SCRIPT_ALIAS = '' #no leading slash, default = '' empty string
+=======
+
+#LOCALIZATIONS
+TIME_ZONE = 'Asia/Chongqing Asia/Chungking'
+# LANGUAGE_CODE = 'en-us'
+
+>>>>>>> 6214863f362fd0702af79abaade0de6736d12e96:settings_local.py.dist
#OTHER SETTINGS
+<<<<<<< HEAD:settings_local.py.dist
+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'
+<<<<<<< HEAD:settings_local.py.dist
+=======
APP_TITLE = u'CNPROG Q&A Forum'
APP_KEYWORDS = u'CNPROG,forum,community'
APP_DESCRIPTION = u'Ask and answer questions.'
@@ -55,7 +95,11 @@ APP_INTRO = u'<p>Ask and answer questions, make the world better!</p>'
APP_COPYRIGHT = 'Copyright CNPROG, 2009. Some rights reserved under creative commons license.'
LOGIN_URL = '/%s%s%s' % (FORUM_SCRIPT_ALIAS,'account/','signin/')
GREETING_URL = LOGIN_URL #may be url of "faq" page or "about", etc
+>>>>>>> evgenyfadeev/master:settings_local.py.dist
+=======
+
+>>>>>>> 6214863f362fd0702af79abaade0de6736d12e96:settings_local.py.dist
USE_I18N = True
LANGUAGE_CODE = 'en'
EMAIL_VALIDATION = 'off' #string - on|off
@@ -63,7 +107,14 @@ MIN_USERNAME_LENGTH = 1
EMAIL_UNIQUE = False
APP_URL = 'http://cnprog.com' #used by email notif system and RSS
GOOGLE_SITEMAP_CODE = '55uGNnQVJW8p1bbXeF/Xbh9I7nZBM/wLhRz6N/I1kkA='
+<<<<<<< HEAD:settings_local.py.dist
+GOOGLE_ANALYTICS_KEY = ''
+<<<<<<< HEAD:settings_local.py.dist
+BOOKS_ON = True
+=======
GOOGLE_ANALYTICS_KEY = ''
+>>>>>>> 6214863f362fd0702af79abaade0de6736d12e96:settings_local.py.dist
+=======
BOOKS_ON = False
WIKI_ON = True
USE_EXTERNAL_LEGACY_LOGIN = False
@@ -83,3 +134,4 @@ SPHINX_SEARCH_INDICES=('cnprog',) #a tuple of index names remember about a comma
#last item, especially if you have just one :)
SPHINX_SERVER='localhost'
SPHINX_PORT=3312
+>>>>>>> evgenyfadeev/master:settings_local.py.dist
diff --git a/templates/about.html b/templates/about.html
index db8c764e..2ca75500 100644
--- a/templates/about.html
+++ b/templates/about.html
@@ -12,36 +12,6 @@
</div>
<div class="content">
-<<<<<<< HEAD:templates/about.html
- <!-- default text
- <p>edit file templates/about.html. Below are just suggestions of what can go here</p>
- <p>what is your site for?</p>
- <p>how does it work? what are roles of members?</p>
- <p>is there a place to find out more about this website?</p>
- -->
- <p>{% blocktrans %}<strong>CNPROG <span class="orange">Q&amp;A</span></strong> is a collaboratively edited question
- and answer site created for the <strong>CNPROG</strong> community.
- {% endblocktrans %}
- </p>
- <p>{% blocktrans %}Here you can <strong>ask</strong> and <strong>answer</strong> questions, <strong>comment</strong>
- and <strong>vote</strong> for the questions of others and their answers. Both questions and answers
- <strong>can be revised</strong> and improved. Questions can be <strong>tagged</strong> with
- the relevant keywords to simplify future access and organize the accumulated material.{% endblocktrans %}
- </p>
-
- <p>{% blocktrans %}This <span class="orange">Q&amp;A</span> site is moderated by its members, hopefully - including yourself!
- Moderation rights are gradually assigned to the site users based on the accumulated <strong>"reputation"</strong>
- points. These points are added to the users account when others vote for his/her questions or answers.
- These points (very) roughly reflect the level of trust of the community.{% endblocktrans %}
- </p>
- <p>{% blocktrans %}No points are necessary to ask or answer the questions - so please -
- <strong><a href="{% url user_signin %}">join us!</a></strong>{% endblocktrans %}
- </p>
- <p>
- {% blocktrans %}
- If you would like to find out more about this site - please see <strong><a href="{% url faq %}">frequently asked questions</a></strong>.
- {% endblocktrans %}
-=======
<p><strong>NMR Wiki <span class="orange">Q&amp;A</span></strong> is a collaboratively edited question
and answer site created for the <strong>Magnetic Resonance</strong> community, i.e. those people who
work in the fields of <strong>NMR</strong>, <strong>EPR</strong>, <strong>MRI</strong></strong>, etc.
@@ -65,7 +35,6 @@
</p>
<p>
If you would like to find out more about this site - please see <strong><a href="{% url faq %}">frequently asked questions</a></strong>.
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/about.html
</p>
</div>
{% endblock %}
diff --git a/templates/ask.html b/templates/ask.html
index 30d43ee0..2efd9864 100644
--- a/templates/ask.html
+++ b/templates/ask.html
@@ -115,6 +115,13 @@
<p class="title-desc">
{{ form.tags.help_text }}
</p>
+ <p class="form-item">
+ <strong>{{ form.categories.label_tag }}:</strong> {% trans "(required)" %} <span class="form-error"></span><br>
+ {{ form.categories }} {{ form.categories.errors }}
+ </p>
+ <p class="title-desc">
+ {{ form.categories.help_text }}
+ </p>
{% if not request.user.is_authenticated %}
<input type="submit" value="{% trans "Login/signup to post your question" %}" class="submit" />
{% else %}
diff --git a/templates/authopenid/confirm_email.txt b/templates/authopenid/confirm_email.txt
index 3a01f146..0b3b2505 100644
--- a/templates/authopenid/confirm_email.txt
+++ b/templates/authopenid/confirm_email.txt
@@ -1,13 +1,13 @@
-{% load i18n %}
-{% trans "Thank you for registering at our Q&A forum!" %}
+Gracias por registrarse en Hasked.com
-{% trans "Your account details are:" %}
+Los detalles de su cuenta son:
-{% trans "Username:" %} {{ username }}
-{% trans "Password:" %} {{ password }}
+Nombre de usuario: {{ username }}
+Contraseña: {{ password }}
{% trans "Please sign in here:" %}
{{signup_url}}
-{% blocktrans %}Sincerely,
-Forum Administrator{% endblocktrans %}
+Saludos,
+El equipo administrador de Hasked.com
+
diff --git a/templates/authopenid/email_validation.txt b/templates/authopenid/email_validation.txt
index 5b166a9b..d741614f 100644
--- a/templates/authopenid/email_validation.txt
+++ b/templates/authopenid/email_validation.txt
@@ -1,15 +1,13 @@
-{% load i18n %}
-{% trans "Greetings from the Q&A forum" %},
+Saludos de Hasked.com,
-{% trans "To make use of the Forum, please follow the link below:" %}
+Para poder usar Hasked haga click en el siguiente link:
{{validation_link}}
-{% trans "Following the link above will help us verify your email address." %}
+Seguir el link de arriba nos ayuda a verificar su correo electrónico.
-{% blocktrans %}If you beleive that this message was sent in mistake -
-no further action is needed. Just ingore this email, we apologize
-for any inconvenience{% endblocktrans %}
+Si cree que este mensaje se mandó por error no se requiere de mas acciones.
+Solo ignore este correo, pedimos disculpas por cualquier incoveniente
-{% blocktrans %}Sincerely,
-Forum Administrator{% endblocktrans %}
+Saludos,
+Equipo de administración de Hasked.com
diff --git a/templates/authopenid/sendpw_email.txt b/templates/authopenid/sendpw_email.txt
index f044ca45..c4910d12 100644
--- a/templates/authopenid/sendpw_email.txt
+++ b/templates/authopenid/sendpw_email.txt
@@ -5,5 +5,5 @@ If it were not you, it is safe to ignore this email.{% endblocktrans %}
{% blocktrans %}email explanation how to use new {{password}} for {{username}}
with the {{key_link}}{% endblocktrans %}
-{% blocktrans %}Sincerely,
-Forum Administrator{% endblocktrans %}
+Saludos,
+El Equipo administrador de Hasked.com
diff --git a/templates/content/style/style.css b/templates/content/style/style.css
index 0a928cd2..cf35ff68 100644
--- a/templates/content/style/style.css
+++ b/templates/content/style/style.css
@@ -114,10 +114,6 @@ blockquote
margin-left:20px;text-decoration:underline; font-size:12px; color:#333333;}
#logo {
padding: 5px 0px 0px 0px;
-<<<<<<< HEAD:templates/content/style/style.css
- margin-bottom:-3px;
-=======
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
}
#navBar {float:clear;position:relative;display:block;width:960px;}
#navBar .nav {margin:20px 0px 0px 16px;
@@ -166,11 +162,7 @@ blockquote
border-right:1px solid #b4b48e;
border-bottom:1px solid #b4b48e;*/
background: white;/* #f9f7ed;*/
-<<<<<<< HEAD:templates/content/style/style.css
- margin:10px 0 10px 0;
-=======
/*margin:10px 0 10px 0;*/
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
/*background:url(../images/quest-bg.gif) repeat-x top;*/
}
#listA .qstA thumb {float:left; }
@@ -212,9 +204,7 @@ blockquote
/*border-bottom:1px solid #888a85;*/
}
.evenMore {font-size:14px; font-weight:800;}
-<<<<<<< HEAD:templates/content/style/style.css
-.questions-count{font-size:32px;font-family:sans-serif;font-weight:600;padding:0 0 5px 7px;color:#a40000;}
-=======
+
.questions-count{
font-size:32px;
font-family:sans-serif;
@@ -223,7 +213,6 @@ blockquote
color:#a40000;
margin-top:3px;
}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
/*内容块*/
.boxA {background:#888a85; padding:6px; margin-bottom:8px;border 1px solid #babdb6;}
@@ -235,11 +224,7 @@ blockquote
.boxB .body {border:1px solid #aaaaaa; padding:8px; background:#FFF; font-size:13px; line-height:160%;}
.boxB .more {padding:1px; text-align:right; font-weight:800;}
.boxC {
-<<<<<<< HEAD:templates/content/style/style.css
- background:#babdb6;/*f9f7ed;*/
-=======
background: #cacdc6;/*f9f7ed;*/
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
padding:10px;
margin-bottom:8px;
border-top:1px solid #eeeeec;
@@ -247,15 +232,12 @@ blockquote
border-right:1px solid #a9aca5;
border-bottom:1px solid #babdb6;
}
-<<<<<<< HEAD:templates/content/style/style.css
-=======
.boxC p {
margin-bottom:8px;
}
.boxC p.nomargin {
margin:0px;
}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
.boxC p.info-box-follow-up-links {
text-align:right;
margin:0;
@@ -289,11 +271,7 @@ blockquote
border:1px solid #fff;
background-color:#fff;
color:#777;
-<<<<<<< HEAD:templates/content/style/style.css
- padding:.3em;
-=======
padding:2px 4px 3px 4px;
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
font:bold 100% sans-serif;
}
@@ -344,21 +322,14 @@ blockquote
/*标签*/
.tag {font-size:13px; font-weight:normal; color:#333; text-decoration:none;background-color:#EEE; border-left:3px solid #777; border-top:1px solid #EEE; border-bottom:1px solid #CCC; border-right:1px solid #CCC; padding:1px 8px 1px 8px;}
.tags {font-family:sans-serif; line-height:200%; display:block; margin-top:5px;}
-<<<<<<< HEAD:templates/content/style/style.css
-.tags a {font-size:13px; font-weight:normal; color:#333; text-decoration:none;background-color:#EEE; border-left:3px solid #777; border-top:1px solid #EEE; border-bottom:1px solid #CCC; border-right:1px solid #CCC; padding:1px 8px 1px 8px;}
-=======
.tags a {white-space: nowrap; font-size:13px; font-weight:normal; color:#333; text-decoration:none;background-color:#EEE; border-left:3px solid #777; border-top:1px solid #EEE; border-bottom:1px solid #CCC; border-right:1px solid #CCC; padding:1px 8px 1px 8px;}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
.tags a:hover {background-color:#fFF;color:#333;}
.tagsbox {line-height:200%;}
.tagsbox a {font-size:13px; font-weight:normal; color:#333; text-decoration:none;background-color:#EEE; border-left:3px solid #777; border-top:1px solid #EEE; border-bottom:1px solid #CCC; border-right:1px solid #CCC; padding:1px 8px 1px 8px;}
.tagsbox a:hover {background-color:#fFF;color:#333;}
.tag-number {font-weight:700;font-family:sans-serif;}
-<<<<<<< HEAD:templates/content/style/style.css
-=======
.marked-tags { margin-top: 0px;margin-bottom: 5px; }
.deletable-tag { margin-right: 3px; white-space:nowrap; }
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
/*奖牌*/
a.medal { font-size:14px; line-height:250%; font-weight:800; color:#333; text-decoration:none; background:url(../images/medala.gif) no-repeat; border-left:1px solid #EEE; border-top:1px solid #EEE; border-bottom:1px solid #CCC; border-right:1px solid #CCC; padding:4px 12px 4px 6px;}
@@ -1188,297 +1159,291 @@ ul.bulleta li {background:url(../images/bullet_green.gif) no-repeat 0px 2px; pad
.message p {
margin-bottom:0px;
}
-<<<<<<< HEAD:templates/content/style/style.css
-=======
.message p.space-above {
margin-top:10px;
}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
-
-.warning{color:red;}
-.darkred{color:darkred;}
-.submit{
- cursor:pointer;
- /*letter-spacing:1px;*/
- background-color:#D4D0C8;
- height:40px;
- border:1px solid #777777;
-/* width:100px; */
- font-weight:bold;
- padding-bottom:4px;
- font-size:120%;}
-.submit:hover{text-decoration:underline;}
-.ask-body{padding-right:10px;}
-.thousand{color:orange;}
-
-.notify
-{
- position: fixed;
- top: 0px;
- left: 0px;
- width: 100%;
- z-index: 100;
- padding: 0;
- text-align: center;
- font-weight: Bold;
- color: #444;
- background-color: #F4A83D;
-}
-
-.notify p {
- margin-top:5px;
- margin-bottom:5px;
- font-size:16px;
-}
-
-#close-notify
-{
- position:absolute;
- right:5px;
- top:5px;
- padding:0 3px 0 3px;
- color: #735005;
- text-decoration: none;
- font-size:14px;
- line-height:18px;
- background-color: #FAD163;
- border: 2px #735005 solid;
- cursor:pointer;
-}
-#close-notify:hover {
- text-decoration:none;
-}
-
-.big {
- font-size:15px;
-}
-.bigger {
- font-size:14px;
-}
-.strong {
- font-weight:bold;
-}
-.orange
-{
- color:#d64000;
- font-weight:bold;
-}
-.grey {
- color:#808080;
-}
-.about div {
- padding:10px 5px 10px 5px;
- border-top:1px dashed #aaaaaa;
-}
-.about div.first {
- padding-top:0;
- border-top:none;
-}
-.about p {
- margin-bottom:10px;
-}
-.about a {color:#d64000;text-decoration:underline;}
-.about h3{
- line-height:30px;
- font-size:15px;
- font-weight:700;
- padding-top: 0px;
-}
-.highlight {
- background-color:#FFF8C6;
-}
-.nomargin {
- margin:0;
-}
-.margin-bottom {
- margin-bottom: 10px;
-}
-.inline-block {
- display:inline-block;
-}
-.action-status {
- margin:0;
- border:none;
- text-align:center;
- line-height:10px;
- font-size:12px;
- padding:0;
-}
-.action-status span {
- padding:3px 5px 3px 5px;
- background-color:#fff380;/* nice yellow */
- font-weight:normal;
- -moz-border-radius: 5px;
- -khtml-border-radius: 5px;
- -webkit-border-radius: 5px;
-}
-.tight {
- margin:0;
- padding:0;
-}
-.list-table td {
- vertical-align:top;
-}
-
-p.comment {
- border-top: 1px dotted #ccccce;
- margin:0;
- font-size:11px;
- color: #444444;
- padding:5px 0 5px 0;
-}
-
-.delete-icon {
- vertical-align:middle;
- padding-left:3px;
-}
-/* these need to go */
-table.form-as-table .errorlist {
- display: block;
- margin:0;
- padding:0 0 0 5px;
- text-align:left;
- font-size:10px;
- color:darkred;
-}
-table.form-as-table input {
- display: inline;
- margin-left: 4px;
-}
-table.form-as-table th {
- vertical-align:bottom;
- padding-bottom:4px;
-}
-.form-row-vertical {
- margin-top: 8px;
- display: block;
-}
-.form-row-vertical label {
- margin-bottom:3px;
- display:block;
-}
-/* above stuff needs to go */
-.text-align-right {
- text-align: center;
-}
-ul.form-horizontal-rows {
- list-style:none;
- margin:0;
-}
-ul.form-horizontal-rows li {
- position:relative;
- height:40px;
-}
-ul.form-horizontal-rows label {
- display:inline-block;
-}
-ul.form-horizontal-rows ul.errorlist {
- list-style:none;
- color:darkred;
- font-size:10px;
- line-height:10px;
- position:absolute;
- top:2px;
- left:180px;
- text-align:left;
- margin:0;
-}
-ul.form-horizontal-rows ul.errorlist li {
- height:10px;
-}
-ul.form-horizontal-rows label {
- position:absolute;
- left:0px;
- bottom:6px;
- margin:0px;
- line-height: 12px;
- font-size: 12px;
-}
-ul.form-horizontal-rows li input {
- position:absolute;
- bottom:0px;
- left:180px;
- margin:0px;
-}
-#emailpw-form li input {
- left:170px;
-}
-#emailpw-form ul.errorlist {
- left:170px;
-}
-#changepw-form li input {
- left:150px;
-}
-#changepw-form ul.errorlist {
- left:150px;
-}
-.narrow .summary {
- float: left;
-}
-.narrow .summary .question-title {
- font-weight: bold;
- font-size: 120%;
-}
-.user-profile-tool-links {
- padding-bottom:10px;
- font-weight: bold;
-}
-.post-controls {
- float:left;
- font-size:11px;
- line-height:12px;
- min-width:200px;
- margin-bottom:5px;
-}
-#question-controls .tags {
- margin:0 0 3px 0;
-}
-.post-update-info-container {
- float: right;
- min-width:190px;
-}
-.post-update-info {
- display:inline-block;
- float:right;
- width:190px;
- margin-bottom:5px;
-}
-.post-update-info p {
- font-size:11px;
- line-height:15px;
- margin:0 0 4px 0;
- padding:0;
-}
-.post-update-info img {
- float: left;
- width: 32px;
- margin: 4px 8px 0 0;
-}
-.comments-container {
- clear:both;
-}
-.admin {
- background-color:#fff380;/* nice yellow */
- border: 1px solid darkred;
- padding: 0 5px 0 5px;
-}
-.admin p {
- margin-bottom: 3px;
-}
-.admin #action_status {
- text-align:center;
- font-weight:bold;
-}
-<<<<<<< HEAD:templates/content/style/style.css
-=======
-#tagSelector {
- padding-bottom: 2px;
-}
-#hideIgnoredTagsControl {
- margin: 5px 0 0 0;
-}
-#hideIgnoredTagsCb {
- margin: 0 2px 0 1px;
-}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/content/style/style.css
+ .warning{color:red;}
+ .darkred{color:darkred;}
+ .submit{
+ cursor:pointer;
+ /*letter-spacing:1px;*/
+ background-color:#D4D0C8;
+ height:40px;
+ border:1px solid #777777;
+ /* width:100px; */
+ font-weight:bold;
+ padding-bottom:4px;
+ font-size:120%;}
+ .submit:hover{text-decoration:underline;}
+ .ask-body{padding-right:10px;}
+ .thousand{color:orange;}
+
+ .notify
+ {
+ position: fixed;
+ top: 0px;
+ left: 0px;
+ width: 100%;
+ z-index: 100;
+ padding: 0;
+ text-align: center;
+ font-weight: Bold;
+ color: #444;
+ background-color: #F4A83D;
+ }
+
+ .notify p {
+ margin-top:5px;
+ margin-bottom:5px;
+ font-size:16px;
+ }
+
+ #close-notify
+ {
+ position:absolute;
+ right:5px;
+ top:5px;
+ padding:0 3px 0 3px;
+ color: #735005;
+ text-decoration: none;
+ font-size:14px;
+ line-height:18px;
+ background-color: #FAD163;
+ border: 2px #735005 solid;
+ cursor:pointer;
+ }
+ #close-notify:hover {
+ text-decoration:none;
+ }
+
+ .big {
+ font-size:15px;
+ }
+ .bigger {
+ font-size:14px;
+ }
+ .strong {
+ font-weight:bold;
+ }
+ .orange
+ {
+ color:#d64000;
+ font-weight:bold;
+ }
+ .grey {
+ color:#808080;
+ }
+ .about div {
+ padding:10px 5px 10px 5px;
+ border-top:1px dashed #aaaaaa;
+ }
+ .about div.first {
+ padding-top:0;
+ border-top:none;
+ }
+ .about p {
+ margin-bottom:10px;
+ }
+ .about a {color:#d64000;text-decoration:underline;}
+ .about h3{
+ line-height:30px;
+ font-size:15px;
+ font-weight:700;
+ padding-top: 0px;
+ }
+ .highlight {
+ background-color:#FFF8C6;
+ }
+ .nomargin {
+ margin:0;
+ }
+ .margin-bottom {
+ margin-bottom: 10px;
+ }
+ .inline-block {
+ display:inline-block;
+ }
+ .action-status {
+ margin:0;
+ border:none;
+ text-align:center;
+ line-height:10px;
+ font-size:12px;
+ padding:0;
+ }
+ .action-status span {
+ padding:3px 5px 3px 5px;
+ background-color:#fff380;/* nice yellow */
+ font-weight:normal;
+ -moz-border-radius: 5px;
+ -khtml-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ }
+ .tight {
+ margin:0;
+ padding:0;
+ }
+
+ .list-table td {
+ vertical-align:top;
+ }
+
+ p.comment {
+ border-top: 1px dotted #ccccce;
+ margin:0;
+ font-size:11px;
+ color: #444444;
+ padding:5px 0 5px 0;
+ }
+
+ .delete-icon {
+ vertical-align:middle;
+ padding-left:3px;
+ }
+ /* these need to go */
+ table.form-as-table .errorlist {
+ display: block;
+ margin:0;
+ padding:0 0 0 5px;
+ text-align:left;
+ font-size:10px;
+ color:darkred;
+ }
+ table.form-as-table input {
+ display: inline;
+ margin-left: 4px;
+ }
+ table.form-as-table th {
+ vertical-align:bottom;
+ padding-bottom:4px;
+ }
+ .form-row-vertical {
+ margin-top: 8px;
+ display: block;
+ }
+ .form-row-vertical label {
+ margin-bottom:3px;
+ display:block;
+ }
+ /* above stuff needs to go */
+ .text-align-right {
+ text-align: center;
+ }
+ ul.form-horizontal-rows {
+ list-style:none;
+ margin:0;
+ }
+ ul.form-horizontal-rows li {
+ position:relative;
+ height:40px;
+ }
+ ul.form-horizontal-rows label {
+ display:inline-block;
+ }
+ ul.form-horizontal-rows ul.errorlist {
+ list-style:none;
+ color:darkred;
+ font-size:10px;
+ line-height:10px;
+ position:absolute;
+ top:2px;
+ left:180px;
+ text-align:left;
+ margin:0;
+ }
+ ul.form-horizontal-rows ul.errorlist li {
+ height:10px;
+ }
+ ul.form-horizontal-rows label {
+ position:absolute;
+ left:0px;
+ bottom:6px;
+ margin:0px;
+ line-height: 12px;
+ font-size: 12px;
+ }
+ ul.form-horizontal-rows li input {
+ position:absolute;
+ bottom:0px;
+ left:180px;
+ margin:0px;
+ }
+ #emailpw-form li input {
+ left:170px;
+ }
+ #emailpw-form ul.errorlist {
+ left:170px;
+ }
+ #changepw-form li input {
+ left:150px;
+ }
+ #changepw-form ul.errorlist {
+ left:150px;
+ }
+ .narrow .summary {
+ float: left;
+ }
+ .narrow .summary .question-title {
+ font-weight: bold;
+ font-size: 120%;
+ }
+ .user-profile-tool-links {
+ padding-bottom:10px;
+ font-weight: bold;
+ }
+ .post-controls {
+ float:left;
+ font-size:11px;
+ line-height:12px;
+ min-width:200px;
+ margin-bottom:5px;
+ }
+ #question-controls .tags {
+ margin:0 0 3px 0;
+ }
+ .post-update-info-container {
+ float: right;
+ min-width:190px;
+ }
+ .post-update-info {
+ display:inline-block;
+ float:right;
+ width:190px;
+ margin-bottom:5px;
+ }
+ .post-update-info p {
+ font-size:11px;
+ line-height:15px;
+ margin:0 0 4px 0;
+ padding:0;
+ }
+ .post-update-info img {
+ float: left;
+ width: 32px;
+ margin: 4px 8px 0 0;
+ }
+ .comments-container {
+ clear:both;
+ }
+ .admin {
+ background-color:#fff380;/* nice yellow */
+ border: 1px solid darkred;
+ padding: 0 5px 0 5px;
+ }
+ .admin p {
+ margin-bottom: 3px;
+ }
+ .admin #action_status {
+ text-align:center;
+ font-weight:bold;
+ }
+ #tagSelector {
+ padding-bottom: 2px;
+ }
+ #hideIgnoredTagsControl {
+ margin: 5px 0 0 0;
+ }
+ #hideIgnoredTagsCb {
+ margin: 0 2px 0 1px;
+ }
diff --git a/templates/header.html b/templates/header.html
index 42074763..ede6cce5 100644
--- a/templates/header.html
+++ b/templates/header.html
@@ -69,3 +69,4 @@
</div>
</div>
<!-- end template header.html -->
+
diff --git a/templates/index.html b/templates/index.html
index 4041b863..b920db1b 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -24,10 +24,11 @@
<div class="tabBar">
<div class="headQuestions">{% trans "Questions" %}</div>
<div class="tabsA">
- <a id="latest" href="{% url questions %}?sort=latest" title="{% trans "last updated questions" %}" >{% trans "newest" %}</a>
+ <a id="latest" href="{% url questions %}?sort=latest" title="{% trans "last updated questions" %}" >{% trans "newest" %}</a>
+ <a id="active" href="{% url questions %}?sort=active" title="{% trans "most recently updated questions" %}">{% trans "active" %}</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>
+ <!--<a id="all" href="{% url questions %}" title="{% trans "all questions" %}" >{% trans "all questions" %}</a>-->
</div>
</div>
<!-- 问题列表 -->
diff --git a/templates/question.html b/templates/question.html
index e88f7ef1..9652e3f6 100644
--- a/templates/question.html
+++ b/templates/question.html
@@ -140,13 +140,6 @@
<span class="action-link"><a href="{% url edit_question question.id %}">{% trans 'edit' %}</a></span>
{% endif %}
{% separator %}
-<<<<<<< HEAD:templates/question.html
- {% if request.user|can_delete_post:question %}
- <span class="action-link"><a id="question-delete-link-{{question.id}}">{% trans "delete" %}</a></span>
- {% endif %}
- {% separator %}
-=======
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/question.html
{% if question.closed %}
{% if request.user|can_reopen_question:question %}
<span class="action-link"><a href="{% url reopen question.id %}">{% trans "reopen" %}</a></span>
@@ -166,13 +159,10 @@
{% endif %}
</span>
{% endif %}
-<<<<<<< HEAD:templates/question.html
-=======
{% separator %}
{% if request.user|can_delete_post:question %}
<span class="action-link"><a id="question-delete-link-{{question.id}}">{% trans "delete" %}</a></span>
{% endif %}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/question.html
{% endjoinitems %}
</div>
<div class="post-update-info-container">
@@ -304,18 +294,7 @@
<span class="action-link"><a href="{% url edit_answer answer.id %}">{% trans 'edit' %}</a></span>
{% endif %}
{% separator %}
-<<<<<<< HEAD:templates/question.html
- {% if request.user|can_delete_post:answer %}
- {% spaceless %}
- <span class="action-link">
- <a id="answer-delete-link-{{answer.id}}">
- {% if answer.deleted %}{% trans "undelete" %}{% else %}{% trans "delete" %}{% endif %}</a>
- </span>
- {% endspaceless %}
- {% endif %}
- {% separator %}
-=======
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/question.html
+
{% if request.user|can_flag_offensive %}
<span id="answer-offensive-flag-{{ answer.id }}" class="offensive-flag"
title="{% trans "report as offensive (i.e containing spam, advertising, malicious text, etc.)" %}">
@@ -325,8 +304,6 @@
{% endif %}
</span>
{% endif %}
-<<<<<<< HEAD:templates/question.html
-=======
{% separator %}
{% if request.user|can_delete_post:answer %}
{% spaceless %}
@@ -336,7 +313,6 @@
</span>
{% endspaceless %}
{% endif %}
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/question.html
{% endjoinitems %}
</div>
<div class="post-update-info-container">
@@ -384,6 +360,13 @@
{% endif %}
</div>
</div>
+ <div id="comment-{{ answer.id }}" class="post-comments" >
+ <input id="can-post-comments-answer-{{answer.id}}" type="hidden" value="{{ request.user|can_add_comments }}"/>
+ <a id="comments-link-answer-{{answer.id}}" class="comments-link">
+ {% if answer.comment_count %}{% trans "comments" %}
+ <strong>({{answer.comment_count}})</strong>{% else %}{% trans "add comment" %}{% endif %}</a>
+ <div id="comments-answer-{{answer.id}}" class="comments-container">
+ <div class="comments"/></div>
</td>
</tr>
diff --git a/templates/question_edit.html b/templates/question_edit.html
index 8ce980fe..7a10b6ae 100644
--- a/templates/question_edit.html
+++ b/templates/question_edit.html
@@ -114,6 +114,12 @@
<div class="title-desc">
{{ form.summary.help_text }}
</div>
+ <br>
+
+ <p class="form-item">
+ <strong>{{ form.categories.label_tag }}:</strong> {% trans "(required)" %} <span class="form-error"></span><br>
+ {{ form.categories }} {{ form.categories.errors }}
+ </p>
<div class="error" ></div>
<input type="submit" value="{% trans "Save edit" %}" class="submit" />
<input type="button" value="{% trans "Cancel" %}" class="submit" onclick="history.back(-1);" />
diff --git a/templates/questions.html b/templates/questions.html
index 7cbcbd2b..f74256cf 100644
--- a/templates/questions.html
+++ b/templates/questions.html
@@ -140,6 +140,7 @@
<a href="{% url forum.views.tag tag|urlencode %}" title="{% trans "see questions tagged" %}'{{ tag }}'{% trans "using tags" %}" rel="tag">{{ tag }}</a>
{% endfor %}
</div>
+ {%trans "Category: "%}<a href="{% url forum.views.category question.category|urlencode %}">{{ question.category}}</a>
</div>
{% endfor %}
{% if searchtitle %}
diff --git a/templates/user_stats.html b/templates/user_stats.html
index b72f5750..ecc39807 100644
--- a/templates/user_stats.html
+++ b/templates/user_stats.html
@@ -97,14 +97,9 @@
<td width="180" valign="top">
{% for tag in user_tags%}
<a rel="tag"
-<<<<<<< HEAD:templates/user_stats.html
- title="{% blocktrans %}see other questions tagged '{{ tag }}' {% endblocktrans %}"
- href="{% url forum.views.tag tag|urlencode %}">{{tag.name}}</a><span class="tag-number"> &#215; {{ tag.used_count|intcomma }}</span><br/>
-=======
title="{% blocktrans with tag.name as tag_name %}see other questions with {{view_user}}'s contributions tagged '{{ tag_name }}' {% endblocktrans %}"
href="{% url forum.views.tag tag|urlencode %}?user={{view_user.username}}">{{tag.name}}</a>
<span class="tag-number">&#215; {{ tag.user_tag_usage_count|intcomma }}</span><br/>
->>>>>>> 82d35490db90878f013523c4d1a5ec3af2df8b23:templates/user_stats.html
{% if forloop.counter|divisibleby:"10" %}
</td>
<td width="180" valign="top">