コード例 #1
0
ファイル: edit.py プロジェクト: lacroixdavid1/weblate
def auto_translation(request, project, component, lang):
    translation = get_translation(request, project, component, lang)
    project = translation.component.project
    if not request.user.has_perm("translation.auto", project):
        raise PermissionDenied()

    autoform = AutoForm(translation.component, request.POST)

    if translation.component.locked or not autoform.is_valid():
        messages.error(request, _("Failed to process form!"))
        show_form_errors(request, autoform)
        return redirect(translation)

    args = (
        request.user.id,
        translation.id,
        autoform.cleaned_data["mode"],
        autoform.cleaned_data["filter_type"],
        autoform.cleaned_data["auto_source"],
        autoform.cleaned_data["component"],
        autoform.cleaned_data["engines"],
        autoform.cleaned_data["threshold"],
    )

    if settings.CELERY_TASK_ALWAYS_EAGER:
        messages.success(request, auto_translate(*args))
    else:
        task = auto_translate.delay(*args)
        messages.success(request, _("Automatic translation in progress"),
                         f"task:{task.id}")

    return redirect(translation)
コード例 #2
0
ファイル: autotranslate.py プロジェクト: rajat641/weblate
    def daily(self, component):
        # Translate every component once in a week to reduce load
        if component.id % 7 != date.today().weekday():
            return

        for translation in component.translation_set.iterator():
            if translation.is_source:
                continue
            transaction.on_commit(lambda: auto_translate.delay(
                None, translation.pk, **self.instance.configuration))
コード例 #3
0
ファイル: autotranslate.py プロジェクト: wellart/weblate
 def daily(self, component):
     for translation in component.translation_set.iterator():
         auto_translate.delay(None, translation.pk, **self.instance.configuration)
コード例 #4
0
ファイル: autotranslate.py プロジェクト: as2network/weblate
 def callback():
     auto_translate.delay(None, translation.pk,
                          **self.instance.configuration)
コード例 #5
0
 def daily(self, component):
     for translation in component.translation_set.iterator():
         if translation.is_source:
             continue
         transaction.on_commit(lambda: auto_translate.delay(
             None, translation.pk, **self.instance.configuration))