Beispiel #1
0
def translate(request, unit_id):
    """
    AJAX handler for translating.
    """
    unit = get_object_or_404(Unit, pk=int(unit_id))
    unit.check_acl(request)
    if not can_use_mt(request.user, unit.translation):
        raise PermissionDenied()

    service_name = request.GET.get("service", "INVALID")

    if service_name not in MACHINE_TRANSLATION_SERVICES:
        return HttpResponseBadRequest("Invalid service specified")

    translation_service = MACHINE_TRANSLATION_SERVICES[service_name]

    # Error response
    response = {
        "responseStatus": 500,
        "service": translation_service.name,
        "responseDetails": "",
        "translations": [],
        "lang": unit.translation.language.code,
        "dir": unit.translation.language.direction,
    }

    try:
        response["translations"] = translation_service.translate(
            unit.translation.language.code, unit.get_source_plurals()[0], unit, request.user
        )
        response["responseStatus"] = 200
    except Exception as exc:
        response["responseDetails"] = "%s: %s" % (exc.__class__.__name__, str(exc))

    return HttpResponse(json.dumps(response), content_type="application/json")
Beispiel #2
0
def translate(request, unit_id):
    '''
    AJAX handler for translating.
    '''
    unit = get_object_or_404(Unit, pk=int(unit_id))
    unit.check_acl(request)
    if not can_use_mt(request.user, unit.translation):
        raise PermissionDenied()

    service_name = request.GET.get('service', 'INVALID')

    if service_name not in MACHINE_TRANSLATION_SERVICES:
        return HttpResponseBadRequest('Invalid service specified')

    translation_service = MACHINE_TRANSLATION_SERVICES[service_name]

    # Error response
    response = {
        'responseStatus': 500,
        'service': translation_service.name,
        'responseDetails': '',
        'translations': [],
        'lang': unit.translation.language.code,
        'dir': unit.translation.language.direction,
    }

    try:
        response['translations'] = translation_service.translate(
            unit.translation.language.code,
            unit.get_source_plurals()[0],
            unit,
            request.user
        )
        response['responseStatus'] = 200
    except Exception as exc:
        response['responseDetails'] = '%s: %s' % (
            exc.__class__.__name__,
            str(exc)
        )

    return HttpResponse(
        json.dumps(response),
        content_type='application/json'
    )
Beispiel #3
0
def translate(request, unit_id):
    '''
    AJAX handler for translating.
    '''
    unit = get_object_or_404(Unit, pk=int(unit_id))
    unit.check_acl(request)
    if not can_use_mt(request.user, unit.translation):
        raise PermissionDenied()

    service_name = request.GET.get('service', 'INVALID')

    if service_name not in MACHINE_TRANSLATION_SERVICES:
        return HttpResponseBadRequest('Invalid service specified')

    translation_service = MACHINE_TRANSLATION_SERVICES[service_name]

    # Error response
    response = {
        'responseStatus': 500,
        'service': translation_service.name,
        'responseDetails': '',
        'translations': [],
        'lang': unit.translation.language.code,
        'dir': unit.translation.language.direction,
    }

    try:
        response['translations'] = translation_service.translate(
            unit.translation.language.code,
            unit.get_source_plurals()[0],
            unit,
            request.user
        )
        response['responseStatus'] = 200
    except Exception as exc:
        response['responseDetails'] = '%s: %s' % (
            exc.__class__.__name__,
            str(exc)
        )

    return JsonResponse(
        data=response,
    )