Example #1
0
def extract(request, translation_project):
    """generate glossary of common keywords and phrases from translation project"""
    template_vars = {
        'translation_project': translation_project,
        'language': translation_project.language,
        'project': translation_project.project,
        'directory': translation_project.directory,
    }

    if request.method == 'POST' and request.POST['extract']:
        extractor = TerminologyExtractor(
            accelchars=translation_project.checker.config.accelmarkers,
            sourcelanguage=str(
                translation_project.project.source_language.code))
        for store in translation_project.stores.iterator():
            if store.name == 'pootle-terminology.po':
                continue
            extractor.processunits(store.units, store.pootle_path)
        terms = extractor.extract_terms(create_termunit=create_termunit)
        termunits = extractor.filter_terms(terms, nonstopmin=2)
        store, created = Store.objects.get_or_create(
            parent=translation_project.directory,
            translation_project=translation_project,
            name="pootle-terminology.po")
        # lock file
        oldstate = store.state
        store.state = LOCKED
        store.save()

        if not created:
            store.units.delete()

        # calculate maximum terms
        maxunits = int(
            translation_project.getquickstats()['totalsourcewords'] * 0.02)
        maxunits = min(
            max(settings.MIN_AUTOTERMS, maxunits), settings.MAX_AUTOTERMS)
        for index, (score, unit) in enumerate(termunits[:maxunits]):
            unit.store = store
            unit.index = index
            #FIXME: what to do with score?
            unit.save()
            for suggestion in unit.pending_suggestions:
                unit.add_suggestion(suggestion)

        # unlock file
        store.state = oldstate
        if store.state < PARSED:
            store.state = PARSED
        store.save()

        template_vars['store'] = store
        template_vars['termcount'] = len(termunits)
        return redirect(translation_project.pootle_path +
                        'terminology_manage.html')
    return render_to_response(
        "terminology/extract.html",
        template_vars,
        context_instance=RequestContext(request))
Example #2
0
def extract(request, translation_project):
    """generate glossary of common keywords and phrases from translation project"""
    template_vars = {
        'translation_project': translation_project,
        'language': translation_project.language,
        'project': translation_project.project,
        'directory': translation_project.directory,

        }
    terminology_filename = get_terminology_filename(translation_project)
    if request.method == 'POST' and request.POST['extract']:
        from translate.tools.poterminology import TerminologyExtractor
        extractor = TerminologyExtractor(accelchars=translation_project.checker.config.accelmarkers,
                                         sourcelanguage=str(translation_project.project.source_language.code))
        for store in translation_project.stores.iterator():
            if store.is_terminology:
                continue
            extractor.processunits(store.units, store.pootle_path)
        terms = extractor.extract_terms(create_termunit=create_termunit)
        termunits = extractor.filter_terms(terms, nonstopmin=2)
        store, created = Store.objects.get_or_create(parent=translation_project.directory,
                                                     translation_project=translation_project,
                                                     name=terminology_filename)
        # lock file
        oldstate = store.state
        store.state = LOCKED
        store.save()

        if not created:
            store.units.delete()

        # calculate maximum terms
        maxunits = int(translation_project.getquickstats()['totalsourcewords'] * 0.02)
        maxunits = min(max(settings.MIN_AUTOTERMS, maxunits), settings.MAX_AUTOTERMS)
        for index, (score, unit) in enumerate(termunits[:maxunits]):
            unit.store = store
            unit.index = index
            #FIXME: what to do with score?
            unit.save()
            for suggestion in unit.pending_suggestions:
                unit.add_suggestion(suggestion)  # Touch=True which saves unit on every call

        # unlock file
        store.state = oldstate
        if store.state < PARSED:
            store.state = PARSED
        store.save()

        template_vars['store'] = store
        template_vars['termcount'] = len(termunits)
        from pootle_misc.baseurl import redirect
        return redirect(translation_project.pootle_path + 'terminology_manage.html')
    return render_to_response("terminology/extract.html", template_vars, context_instance=RequestContext(request))
Example #3
0
def extract(request, translation_project):
    """Generate glossary of common keywords and phrases from translation
    project.
    """
    ctx = {
        'page': 'admin-terminology',
        'translation_project': translation_project,
        'language': translation_project.language,
        'project': translation_project.project,
        'directory': translation_project.directory,
    }
    terminology_filename = get_terminology_filename(translation_project)

    if request.method == 'POST' and request.POST['extract']:
        from translate.tools.poterminology import TerminologyExtractor
        extractor = TerminologyExtractor(
            accelchars=translation_project.checker.config.accelmarkers,
            sourcelanguage=str(
                translation_project.project.source_language.code))

        for store in translation_project.stores.iterator():
            if store.is_terminology:
                continue
            extractor.processunits(store.units, store.pootle_path)

        terms = extractor.extract_terms(create_termunit=create_termunit)
        termunits = extractor.filter_terms(terms, nonstopmin=2)

        store, created = Store.objects.get_or_create(
            parent=translation_project.directory,
            translation_project=translation_project,
            name=terminology_filename,
        )

        # Lock file
        oldstate = store.state
        store.state = LOCKED
        store.save()

        if not created:
            store.units.delete()

        # Calculate maximum terms.
        maxunits = int(translation_project.get_total_wordcount() * 0.02)
        maxunits = min(max(settings.MIN_AUTOTERMS, maxunits),
                       settings.MAX_AUTOTERMS)
        for index, (score, unit) in enumerate(termunits[:maxunits]):
            unit.store = store
            unit.index = index
            #FIXME: what to do with score?
            unit.save()
            for suggestion in unit.pending_suggestions:
                # Touch=True which saves unit on every call
                unit.add_suggestion(suggestion)

        # Unlock file
        store.state = oldstate
        if store.state < PARSED:
            store.state = PARSED
        store.save()

        ctx.update({
            'store': store,
            'termcount': len(termunits),
        })

        path_args = split_pootle_path(translation_project.pootle_path)[:2]
        return redirect(reverse('pootle-terminology-manage', args=path_args))

    return render(request, "translation_projects/terminology/extract.html",
                  ctx)
Example #4
0
def extract(request, translation_project):
    """Generate glossary of common keywords and phrases from translation
    project.
    """
    ctx = {
        'page': 'admin-terminology',

        'translation_project': translation_project,
        'language': translation_project.language,
        'project': translation_project.project,
        'directory': translation_project.directory,
    }
    terminology_filename = get_terminology_filename(translation_project)

    if request.method == 'POST' and request.POST['extract']:
        from translate.tools.poterminology import TerminologyExtractor
        extractor = TerminologyExtractor(
            accelchars=translation_project.checker.config.accelmarkers,
            sourcelanguage=str(translation_project.project.source_language.code)
        )

        for store in translation_project.stores.iterator():
            if store.is_terminology:
                continue
            extractor.processunits(store.units, store.pootle_path)

        terms = extractor.extract_terms(create_termunit=create_termunit)
        termunits = extractor.filter_terms(terms, nonstopmin=2)

        store, created = Store.objects.get_or_create(
            parent=translation_project.directory,
            translation_project=translation_project,
            name=terminology_filename,
        )

        # Lock file
        oldstate = store.state
        store.state = LOCKED
        store.save()

        if not created:
            store.units.delete()

        # Calculate maximum terms
        source_words = sum(store._get_total_wordcount()
                           for store in translation_project.stores.iterator())
        maxunits = int(source_words * 0.02)
        maxunits = min(max(settings.MIN_AUTOTERMS, maxunits),
                       settings.MAX_AUTOTERMS)
        for index, (score, unit) in enumerate(termunits[:maxunits]):
            unit.store = store
            unit.index = index
            #FIXME: what to do with score?
            unit.save()
            for suggestion in unit.pending_suggestions:
                # Touch=True which saves unit on every call
                unit.add_suggestion(suggestion)

        # Unlock file
        store.state = oldstate
        if store.state < PARSED:
            store.state = PARSED
        store.save()

        ctx.update({
            'store': store,
            'termcount': len(termunits),
        })

        path_args = split_pootle_path(translation_project.pootle_path)[:2]
        return redirect(reverse('pootle-terminology-manage', args=path_args))

    return render(request, "translation_projects/terminology/extract.html", ctx)
Example #5
0
def extract(request, translation_project):
    """Generate glossary of common keywords and phrases from translation
    project.
    """
    template_vars = {
        'translation_project': translation_project,
        'language': translation_project.language,
        'project': translation_project.project,
        'directory': translation_project.directory,
    }
    if request.method == 'POST' and request.POST['extract']:
        from translate.tools.poterminology import TerminologyExtractor
        terminology_extractor_params = {
            'accelchars': translation_project.checker.config.accelmarkers,
            'sourcelanguage': str(translation_project.project.source_language.code),
        }
        extractor = TerminologyExtractor(**terminology_extractor_params)
        for store in translation_project.stores.iterator():
            if store.is_terminology:
                continue
            extractor.processunits(store.units, store.pootle_path)
        terms = extractor.extract_terms(create_termunit=create_termunit)
        termunits = extractor.filter_terms(terms, nonstopmin=2)
        create_criteria = {
            'parent': translation_project.directory,
            'translation_project': translation_project,
            'name': get_terminology_filename(translation_project),
        }
        store, created = Store.objects.get_or_create(**create_criteria)
        # lock file
        oldstate = store.state
        store.state = LOCKED
        store.save()

        if not created:
            store.units.delete()

        # calculate maximum terms
        maxunits = int(translation_project.getquickstats()['totalsourcewords'] * 0.02)
        maxunits = min(max(settings.MIN_AUTOTERMS, maxunits), settings.MAX_AUTOTERMS)
        for index, (score, unit) in enumerate(termunits[:maxunits]):
            unit.store = store
            unit.index = index
            #FIXME: what to do with score?
            unit.save()
            for suggestion in unit.pending_suggestions:
                # Touch=True which saves unit on every call
                unit.add_suggestion(suggestion)

        # unlock file
        store.state = oldstate
        if store.state < PARSED:
            store.state = PARSED
        store.save()

        template_vars['store'] = store
        template_vars['termcount'] = len(termunits)
        from pootle_misc.baseurl import redirect
        return redirect(translation_project.pootle_path +
                        'terminology_manage.html')
    return render_to_response("terminology/extract.html", template_vars,
                              context_instance=RequestContext(request))