diff --git a/html/translate.html b/html/translate.html index 1d7bbd593..03fce2b45 100644 --- a/html/translate.html +++ b/html/translate.html @@ -17,7 +17,12 @@ {% trans "Source" %}{% trans "Translation" %} {% if unit.is_plural %} {% else %} -{{ unit.source }}{{ form.target }} +{{ unit.source }} +{{ form.checksum }} +{{ form.target }} +
+{{ form.fuzzy }} + {% endif %} {% trans "Location" %} {{ unit.get_location_links }} diff --git a/trans/forms.py b/trans/forms.py new file mode 100644 index 000000000..fe4c1bdba --- /dev/null +++ b/trans/forms.py @@ -0,0 +1,8 @@ +from django import forms +from django.utils.translation import ugettext_lazy, ugettext as _ + +class TranslationForm(forms.Form): + checksum = forms.CharField(widget = forms.HiddenInput) + target = forms.CharField(widget = forms.Textarea, required = False) + fuzzy = forms.BooleanField(label = ugettext_lazy('Fuzzy'), required = False) + diff --git a/trans/views.py b/trans/views.py index 3ea7b49e5..90920e734 100644 --- a/trans/views.py +++ b/trans/views.py @@ -1,8 +1,10 @@ from django.shortcuts import render_to_response, get_object_or_404 from django.template import RequestContext from django.conf import settings +from django.http import HttpResponseRedirect from trans.models import Project, SubProject, Translation, Unit +from trans.forms import TranslationForm def home(request): projects = Project.objects.all() @@ -39,13 +41,32 @@ def show_translation(request, project, subproject, lang): def translate(request, project, subproject, lang): obj = get_object_or_404(Translation, language__code = lang, subproject__slug = subproject, subproject__project__slug = project) + # Check where we are rqtype = request.REQUEST.get('type', 'all') pos = request.REQUEST.get('oldpos', '-1') try: pos = int(pos) except: pos = -1 - unit = obj.unit_set.filter_type(rqtype).filter(position__gt = pos)[0] + + # Any form submitted? + if request.method == 'POST': + form = TranslationForm(request.POST) + if form.is_valid(): + # Check and save + return HttpResponseRedirect('%s?type=%s&oldpos=%d' % (obj.get_translate_url(), rqtype, pos)) + + else: + # What unit to show + unit = obj.unit_set.filter_type(rqtype).filter(position__gt = pos)[0] + + # Prepare form + form = TranslationForm(initial = { + 'checksum': unit.checksum, + 'target': unit.target, + 'fuzzy': unit.fuzzy, + }) + total = obj.unit_set.all().count() return render_to_response('translate.html', RequestContext(request, { @@ -54,4 +75,5 @@ def translate(request, project, subproject, lang): 'unit': unit, 'total': total, 'type': rqtype, + 'form': form, }))