Plugin Directory

Changeset 3275340


Ignore:
Timestamp:
04/17/2025 05:26:17 AM (12 months ago)
Author:
frpet
Message:

Rework automatic translation with workflow

Location:
easytranslate
Files:
14 edited
10 copied

Legend:

Unmodified
Added
Removed
  • easytranslate/tags/v5.2/README.txt

    r3247682 r3275340  
    44Tags: translation, wpml, easytranslate, multilingual, translate
    55Requires at least: 4.7
    6 Tested up to: 6.7
    7 Stable tag: 5.1
     6Tested up to: 6.8
     7Stable tag: 5.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
  • easytranslate/tags/v5.2/admin/class-easy-translate-admin.php

    r2742144 r3275340  
    2222    const MENU_INTEGRATION = 'admin-easy-translate-integration';
    2323    const MENU_PARTIAL_TRANSLATIONS = 'admin-easy-translate-partial-translations';
     24
     25    const MAIN_PAGES = [
     26        self::MENU_MAIN                 => self::MENU_MAIN,
     27        self::MENU_PROJECTS             => self::MENU_PROJECTS,
     28        self::MENU_INTEGRATION          => self::MENU_INTEGRATION,
     29        self::MENU_PARTIAL_TRANSLATIONS => self::MENU_PARTIAL_TRANSLATIONS,
     30    ];
    2431
    2532    /**
     
    146153    public function init_integration()
    147154    {
    148         $this->api_integration->init();
     155        if (in_array($_REQUEST['page'] ?? '', array_keys(self::MAIN_PAGES))) {
     156            $this->api_integration->init();
     157        }
    149158    }
    150159
     
    154163    public function load_string_translation_list_screen_options()
    155164    {
    156 
    157165        $this->string_translation_list = new Easy_Translate_String_Translation_List();
    158166        $this->string_translation_list->load_screen_options();
    159 
    160167    }
    161168
     
    170177    public function set_string_translation_list_screen_option($status, $option, $value)
    171178    {
    172 
    173179        return ($option == Easy_Translate_String_Translation_List::PER_PAGE_OPTION) ? (int)$value : $status;
    174 
    175180    }
    176181
     
    180185    public function load_post_translation_list_screen_options()
    181186    {
    182 
    183187        $this->post_translation_list = new Easy_Translate_Post_Translation_List();
    184188        $this->post_translation_list->load_screen_options();
    185 
    186189    }
    187190
     
    196199    public function set_post_translation_list_screen_option($status, $option, $value)
    197200    {
    198 
    199201        return ($option == Easy_Translate_Post_Translation_List::PER_PAGE_OPTION) ? (int)$value : $status;
    200 
    201202    }
    202203
     
    215216    public function show_partial_translations_page()
    216217    {
    217 
    218218        $this->string_translation_list->prepare_items();
    219219        $this->string_translation_list->render();
    220 
    221220    }
    222221
     
    235234    public function show_projects_page()
    236235    {
    237 
    238236        $this->projects->render();
    239 
    240237    }
    241238
     
    244241     *
    245242     * @param $post_ID
     243     * @throws Exception
    246244     */
    247245    public function edit_post_hook($post_ID)
    248246    {
    249 
    250247        $updater = new Easy_Translate_Translation_Updater();
    251248        $updater->run($post_ID);
    252 
    253249    }
    254250
     
    258254    public function include_plugin_functions()
    259255    {
    260 
    261256        include_once EASY_TRANSLATE_ROOT . 'admin/functions.php';
    262 
    263257    }
    264258
     
    268262    public function set_auto_translate_callback()
    269263    {
    270 
    271264        Easy_Translate_Translation_List::set_auto_translate();
    272 
    273     }
    274 
     265    }
    275266}
  • easytranslate/tags/v5.2/admin/class-easy-translate-post-translation-list.php

    r3247676 r3275340  
    99class Easy_Translate_Post_Translation_List extends Easy_Translate_Translation_List
    1010{
     11    private $workflows = [];
    1112
    1213    /**
     
    234235    protected function column_auto_translate($item)
    235236    {
    236         $checked_value = get_post_meta($item['ID'], 'et_auto_translate', true) ? 'checked' : '';
    237 
    238         return sprintf(
    239             '<label for="%s" class="switch"><input id="%s" value="%s" class="js-auto-translate" type="checkbox" %s><span class="slider round"></span></label>',
    240             'auto_translate_' . $item['ID'],
    241             'auto_translate_' . $item['ID'],
     237        $isEnabled = get_post_meta($item['ID'], 'et_auto_translate', true);
     238        $autoTranslateWorkflow = get_post_meta($item['ID'], 'et_auto_translate_workflow_id', true);
     239        $autoTranslateWorkflow = $this->process_auto_translate_workflow($autoTranslateWorkflow);
     240        $checkedValue = $isEnabled ? 'checked' : '';
     241        $styleDisplay = $isEnabled ? 'inline' : 'none';
     242
     243        echo sprintf(
     244            '<label for="%s" class="switch"><input id="%s" value="%s" class="js-auto-translate-switch" type="checkbox" %s><span class="slider round"></span></label>',
     245            'auto-translate-enabled-' . $item['ID'],
     246            'auto-translate-enabled-' . $item['ID'],
    242247            $item['ID'],
    243             $checked_value
     248            $checkedValue
    244249        );
    245 
     250        ?>
     251      <div id="auto-translate-wrapper-<?= $item['ID'] ?>" style="display: <?= $styleDisplay ?>;">
     252        <select name="workflow" id="auto-translate-workflow-id-<?= $item['ID'] ?>" style="margin-left: 5px">
     253            <?php
     254            /** @var array[] $workflows */
     255            foreach ($this->workflows as $workflow) { ?>
     256              <option
     257                value="<?= $workflow['id'] ?>" <?= $workflow['identifier'] === $autoTranslateWorkflow['identifier'] ? 'selected' : '' ?>><?= $workflow['name'] ?></option>
     258            <?php } ?>
     259        </select>
     260        <br>
     261        <button class="button-primary js-auto-translate" id="auto-translate-<?= $item['ID'] ?>" type="button"
     262                value="<?= $item['ID'] ?>" style="margin-top: 5px;"
     263                name="action"><?= __('Update', EASY_TRANSLATE) ?></button>
     264      </div>
     265        <?php
    246266    }
    247267
     
    459479        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
    460480        $workflows = $service->get_available_workflows();
     481        $this->workflows = $workflows;
    461482        $easyTranslateTeam = "{$options['company_name']} ({$options['team_identifier']})";
    462483
     
    603624    }
    604625
     626    private function process_auto_translate_workflow($autoTranslateWorkflow): array
     627    {
     628        if (empty($autoTranslateWorkflow)) {
     629            return ['identifier' => 'self+machine_translation', 'id' => null];
     630        }
     631        foreach ($this->workflows as $workflow) {
     632            if ($workflow['id'] === $autoTranslateWorkflow) {
     633                return ['identifier' => $workflow['identifier'], 'id' => $workflow['id']];
     634            }
     635        }
     636
     637        return ['identifier' => 'self+machine_translation', 'id' => null];
     638    }
    605639}
  • easytranslate/tags/v5.2/admin/class-easy-translate-string-translation-list.php

    r3247676 r3275340  
    412412    protected function render_list()
    413413    {
     414        $options = get_option(EASY_TRANSLATE_INTEGRATION_OPTION);
     415        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
     416        $workflows = $service->get_available_workflows();
     417        $easyTranslateTeam = "{$options['company_name']} ({$options['team_identifier']})";
     418
    414419        include_once(EASY_TRANSLATE_ROOT . 'admin/partials/string-translation.php');
    415420    }
  • easytranslate/tags/v5.2/admin/class-easy-translate-translation-list.php

    r2903708 r3275340  
    355355     * @return array
    356356     */
    357     public function get_strings_content($ids,  string $source_language = null)
     357    public function get_strings_content($ids, string $source_language = null)
    358358    {
    359359        global $wpdb;
    360360        $content = [];
    361361        $id_in = '"' . implode('","', $ids) . '"';
    362 //        $query = "SELECT id, value from {$wpdb->prefix}icl_strings WHERE id IN ({$id_in})";
    363362
    364363        $select = "str.id, str.value";
     
    739738        global $wpdb;
    740739        $package_id = esc_sql($package_id);
    741 //        $query = "SELECT id, value FROM {$wpdb->prefix}icl_strings WHERE string_package_id='{$package_id}';";
    742740        $select = "str.id, str.value";
    743741        $where = "str.string_package_id='{$package_id}'";
     
    798796    public static function set_auto_translate()
    799797    {
    800 
    801         update_post_meta(intval($_POST['id']), 'et_auto_translate', wp_slash(intval($_POST['value'])));
     798        $payload = $_POST['payload'];
     799        update_post_meta(
     800            intval($_POST['id']),
     801            'et_auto_translate',
     802            wp_slash(intval($payload['enabled'] ?? '0'))
     803        );
     804        update_post_meta(
     805            intval($_POST['id']),
     806            'et_auto_translate_workflow_id',
     807            wp_slash($payload['workflow'] ?? '')
     808        );
    802809
    803810        wp_die();
    804 
    805811    }
    806812
  • easytranslate/tags/v5.2/admin/class-easy-translate-translation-updater.php

    r2768836 r3275340  
    1414     *
    1515     * @param $post_id
     16     * @throws Exception
    1617     */
    1718    public function run($post_id)
    1819    {
    1920        if (get_post_meta($post_id, 'et_auto_translate', true)
     21            && ($workflowId = get_post_meta($post_id, 'et_auto_translate_workflow_id', true))
    2022            && Easy_Translate_Translation_List::compare_post_source_language($post_id)
    2123            && Easy_Translate_Translation_List::check_dependencies()
     
    2628            if ($content[0]) {
    2729                $source = Easy_Translate_Translation_List::get_source_language();
    28                 $target_languages = Easy_Translate_Translation_List::get_translation_needs_update($post_id);
     30                $targetLanguages = Easy_Translate_Translation_List::get_translation_needs_update($post_id);
    2931
    30                 if ($this->update_strings($source, $target_languages, $content)) {
     32                if ($this->update_strings($source, $targetLanguages, $workflowId, $content)) {
    3133                    Easy_Translate_Translation_List::update_string_status(
    3234                        $a_string_id,
     
    3537                    Easy_Translate_Translation_List::update_duplicate_status(
    3638                        [$post_id],
    37                         $target_languages,
     39                        $targetLanguages,
    3840                        Easy_Translate_Translation_List::STATUS_WAITING
    3941                    );
     
    4850     * @param string $source
    4951     * @param array  $target
     52     * @param string $workflowId
    5053     * @param array  $content
    5154     * @return bool
    5255     */
    53     protected function update_strings($source, $target, $content)
     56    protected function update_strings(string $source, array $target, string $workflowId, $content)
    5457    {
    5558        $options = get_option(EASY_TRANSLATE_INTEGRATION_OPTION);
    5659        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
    57         $result = $service->translate($source, $target, $content);
     60        $result = $service->translate($source, $target, $content, $workflowId);
    5861
    5962        return !isset($result['error']);
  • easytranslate/tags/v5.2/admin/js/easy-translate-admin.js

    r2324915 r3275340  
    3232  $(document).ready(function ($) {
    3333
    34     $('.js-auto-translate').change(function () {
     34    $('.js-auto-translate').click(function () {
    3535
    36       var checkboxInput = $(this);
    37       if (checkboxInput.is(':checked')) {
    38         set_auto_translate(checkboxInput.val(), 1);
     36      var button = $(this);
     37      var postId = button.val();
     38      var booleanFlag = $('#auto-translate-enabled-' + postId).is(':checked');
     39      var workflow = $('#auto-translate-workflow-id-' + postId).val();
     40
     41      set_auto_translate(
     42        postId,
     43        {
     44          'enabled': booleanFlag === true ? 1 : 0,
     45          'workflow': workflow
     46        }
     47      );
     48    });
     49    $('.js-auto-translate-switch').change(function () {
     50      var input = $(this);
     51      var postId = input.val();
     52      var booleanFlag = input.is(':checked');
     53      if (booleanFlag === true) {
     54        $('#auto-translate-wrapper-' + postId).attr('style', 'display: inline;');
    3955      } else {
    40         set_auto_translate(checkboxInput.val(), 0);
     56        $('#auto-translate-wrapper-' + postId).attr('style', 'display: none;');
    4157      }
    42 
     58      var workflow = $('#auto-translate-workflow-id-' + postId).val();
     59      set_auto_translate(
     60        postId,
     61        {
     62          'enabled': booleanFlag === true ? 1 : 0,
     63          'workflow': workflow
     64        }
     65      );
    4366    });
    4467
    4568  });
    4669
    47   function set_auto_translate(id, value) {
     70  function set_auto_translate(id, payload) {
    4871
    4972    var data = {
    5073      action: 'et_set_auto_translate_action',
    5174      id: id,
    52       value: value
     75      payload: payload
    5376    };
    5477
  • easytranslate/tags/v5.2/easy-translate.php

    r3247689 r3275340  
    1515 * Plugin URI:        https://www.easytranslate.com/en/integrations/cms/wordpress-plugin/
    1616 * Description:       This is a short description of what the plugin does. It's displayed in the WordPress admin area.
    17  * Version:           2.0.0
     17 * Version:           2.0.1
    1818 * Author:            EasyTranslate
    1919 * Author URI:        https://easytranslate.com
     
    3434 * Rename this for your plugin and update it as you release new versions.
    3535 */
    36 define('EASY_TRANSLATE_VERSION', '2.0.0');
     36define('EASY_TRANSLATE_VERSION', '2.0.1');
    3737
    3838/**
  • easytranslate/tags/v5.2/includes/class-easy-translate.php

    r2742144 r3275340  
    139139            'load_post_translation_list_screen_options');
    140140        $this->loader->add_filter('set-screen-option', $plugin_admin, 'set_post_translation_list_screen_option', 10, 3);
    141         $this->loader->add_action('load-easytranslate_page_' . Easy_Translate_Admin::MENU_PARTIAL_TRANSLATIONS,
    142             $plugin_admin, 'load_string_translation_list_screen_options');
    143         $this->loader->add_filter('set-screen-option', $plugin_admin, 'set_string_translation_list_screen_option', 10,
    144             3);
    145         $this->loader->add_action('wp_ajax_nopriv_' . Easy_Translate_API_Service::WEB_HOOK_ACTION, $plugin_admin,
    146             'completed_task_callback');
     141        $this->loader->add_action(
     142            'load-easytranslate_page_' . Easy_Translate_Admin::MENU_PARTIAL_TRANSLATIONS,
     143            $plugin_admin,
     144            'load_string_translation_list_screen_options'
     145        );
     146        $this->loader->add_filter(
     147            'set-screen-option',
     148            $plugin_admin,
     149            'set_string_translation_list_screen_option',
     150            10,
     151            3
     152        );
     153        $this->loader->add_action(
     154            'wp_ajax_nopriv_' . Easy_Translate_API_Service::WEB_HOOK_ACTION,
     155            $plugin_admin,
     156            'completed_task_callback'
     157        );
    147158        $this->loader->add_action('edit_post', $plugin_admin, 'edit_post_hook', 101);
    148159        $this->loader->add_action('plugin_loaded', $plugin_admin, 'include_plugin_functions');
    149         $this->loader->add_action('wp_ajax_et_set_auto_translate_action', $plugin_admin, 'set_auto_translate_callback');
    150 
     160        $this->loader->add_action(
     161            'wp_ajax_et_set_auto_translate_action',
     162            $plugin_admin,
     163            'set_auto_translate_callback'
     164        );
    151165    }
    152166
  • easytranslate/trunk/README.txt

    r3247682 r3275340  
    44Tags: translation, wpml, easytranslate, multilingual, translate
    55Requires at least: 4.7
    6 Tested up to: 6.7
    7 Stable tag: 5.1
     6Tested up to: 6.8
     7Stable tag: 5.2
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
  • easytranslate/trunk/admin/class-easy-translate-admin.php

    r2742144 r3275340  
    2222    const MENU_INTEGRATION = 'admin-easy-translate-integration';
    2323    const MENU_PARTIAL_TRANSLATIONS = 'admin-easy-translate-partial-translations';
     24
     25    const MAIN_PAGES = [
     26        self::MENU_MAIN                 => self::MENU_MAIN,
     27        self::MENU_PROJECTS             => self::MENU_PROJECTS,
     28        self::MENU_INTEGRATION          => self::MENU_INTEGRATION,
     29        self::MENU_PARTIAL_TRANSLATIONS => self::MENU_PARTIAL_TRANSLATIONS,
     30    ];
    2431
    2532    /**
     
    146153    public function init_integration()
    147154    {
    148         $this->api_integration->init();
     155        if (in_array($_REQUEST['page'] ?? '', array_keys(self::MAIN_PAGES))) {
     156            $this->api_integration->init();
     157        }
    149158    }
    150159
     
    154163    public function load_string_translation_list_screen_options()
    155164    {
    156 
    157165        $this->string_translation_list = new Easy_Translate_String_Translation_List();
    158166        $this->string_translation_list->load_screen_options();
    159 
    160167    }
    161168
     
    170177    public function set_string_translation_list_screen_option($status, $option, $value)
    171178    {
    172 
    173179        return ($option == Easy_Translate_String_Translation_List::PER_PAGE_OPTION) ? (int)$value : $status;
    174 
    175180    }
    176181
     
    180185    public function load_post_translation_list_screen_options()
    181186    {
    182 
    183187        $this->post_translation_list = new Easy_Translate_Post_Translation_List();
    184188        $this->post_translation_list->load_screen_options();
    185 
    186189    }
    187190
     
    196199    public function set_post_translation_list_screen_option($status, $option, $value)
    197200    {
    198 
    199201        return ($option == Easy_Translate_Post_Translation_List::PER_PAGE_OPTION) ? (int)$value : $status;
    200 
    201202    }
    202203
     
    215216    public function show_partial_translations_page()
    216217    {
    217 
    218218        $this->string_translation_list->prepare_items();
    219219        $this->string_translation_list->render();
    220 
    221220    }
    222221
     
    235234    public function show_projects_page()
    236235    {
    237 
    238236        $this->projects->render();
    239 
    240237    }
    241238
     
    244241     *
    245242     * @param $post_ID
     243     * @throws Exception
    246244     */
    247245    public function edit_post_hook($post_ID)
    248246    {
    249 
    250247        $updater = new Easy_Translate_Translation_Updater();
    251248        $updater->run($post_ID);
    252 
    253249    }
    254250
     
    258254    public function include_plugin_functions()
    259255    {
    260 
    261256        include_once EASY_TRANSLATE_ROOT . 'admin/functions.php';
    262 
    263257    }
    264258
     
    268262    public function set_auto_translate_callback()
    269263    {
    270 
    271264        Easy_Translate_Translation_List::set_auto_translate();
    272 
    273     }
    274 
     265    }
    275266}
  • easytranslate/trunk/admin/class-easy-translate-post-translation-list.php

    r3247676 r3275340  
    99class Easy_Translate_Post_Translation_List extends Easy_Translate_Translation_List
    1010{
     11    private $workflows = [];
    1112
    1213    /**
     
    234235    protected function column_auto_translate($item)
    235236    {
    236         $checked_value = get_post_meta($item['ID'], 'et_auto_translate', true) ? 'checked' : '';
    237 
    238         return sprintf(
    239             '<label for="%s" class="switch"><input id="%s" value="%s" class="js-auto-translate" type="checkbox" %s><span class="slider round"></span></label>',
    240             'auto_translate_' . $item['ID'],
    241             'auto_translate_' . $item['ID'],
     237        $isEnabled = get_post_meta($item['ID'], 'et_auto_translate', true);
     238        $autoTranslateWorkflow = get_post_meta($item['ID'], 'et_auto_translate_workflow_id', true);
     239        $autoTranslateWorkflow = $this->process_auto_translate_workflow($autoTranslateWorkflow);
     240        $checkedValue = $isEnabled ? 'checked' : '';
     241        $styleDisplay = $isEnabled ? 'inline' : 'none';
     242
     243        echo sprintf(
     244            '<label for="%s" class="switch"><input id="%s" value="%s" class="js-auto-translate-switch" type="checkbox" %s><span class="slider round"></span></label>',
     245            'auto-translate-enabled-' . $item['ID'],
     246            'auto-translate-enabled-' . $item['ID'],
    242247            $item['ID'],
    243             $checked_value
     248            $checkedValue
    244249        );
    245 
     250        ?>
     251      <div id="auto-translate-wrapper-<?= $item['ID'] ?>" style="display: <?= $styleDisplay ?>;">
     252        <select name="workflow" id="auto-translate-workflow-id-<?= $item['ID'] ?>" style="margin-left: 5px">
     253            <?php
     254            /** @var array[] $workflows */
     255            foreach ($this->workflows as $workflow) { ?>
     256              <option
     257                value="<?= $workflow['id'] ?>" <?= $workflow['identifier'] === $autoTranslateWorkflow['identifier'] ? 'selected' : '' ?>><?= $workflow['name'] ?></option>
     258            <?php } ?>
     259        </select>
     260        <br>
     261        <button class="button-primary js-auto-translate" id="auto-translate-<?= $item['ID'] ?>" type="button"
     262                value="<?= $item['ID'] ?>" style="margin-top: 5px;"
     263                name="action"><?= __('Update', EASY_TRANSLATE) ?></button>
     264      </div>
     265        <?php
    246266    }
    247267
     
    459479        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
    460480        $workflows = $service->get_available_workflows();
     481        $this->workflows = $workflows;
    461482        $easyTranslateTeam = "{$options['company_name']} ({$options['team_identifier']})";
    462483
     
    603624    }
    604625
     626    private function process_auto_translate_workflow($autoTranslateWorkflow): array
     627    {
     628        if (empty($autoTranslateWorkflow)) {
     629            return ['identifier' => 'self+machine_translation', 'id' => null];
     630        }
     631        foreach ($this->workflows as $workflow) {
     632            if ($workflow['id'] === $autoTranslateWorkflow) {
     633                return ['identifier' => $workflow['identifier'], 'id' => $workflow['id']];
     634            }
     635        }
     636
     637        return ['identifier' => 'self+machine_translation', 'id' => null];
     638    }
    605639}
  • easytranslate/trunk/admin/class-easy-translate-string-translation-list.php

    r3247676 r3275340  
    412412    protected function render_list()
    413413    {
     414        $options = get_option(EASY_TRANSLATE_INTEGRATION_OPTION);
     415        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
     416        $workflows = $service->get_available_workflows();
     417        $easyTranslateTeam = "{$options['company_name']} ({$options['team_identifier']})";
     418
    414419        include_once(EASY_TRANSLATE_ROOT . 'admin/partials/string-translation.php');
    415420    }
  • easytranslate/trunk/admin/class-easy-translate-translation-list.php

    r2903708 r3275340  
    355355     * @return array
    356356     */
    357     public function get_strings_content($ids,  string $source_language = null)
     357    public function get_strings_content($ids, string $source_language = null)
    358358    {
    359359        global $wpdb;
    360360        $content = [];
    361361        $id_in = '"' . implode('","', $ids) . '"';
    362 //        $query = "SELECT id, value from {$wpdb->prefix}icl_strings WHERE id IN ({$id_in})";
    363362
    364363        $select = "str.id, str.value";
     
    739738        global $wpdb;
    740739        $package_id = esc_sql($package_id);
    741 //        $query = "SELECT id, value FROM {$wpdb->prefix}icl_strings WHERE string_package_id='{$package_id}';";
    742740        $select = "str.id, str.value";
    743741        $where = "str.string_package_id='{$package_id}'";
     
    798796    public static function set_auto_translate()
    799797    {
    800 
    801         update_post_meta(intval($_POST['id']), 'et_auto_translate', wp_slash(intval($_POST['value'])));
     798        $payload = $_POST['payload'];
     799        update_post_meta(
     800            intval($_POST['id']),
     801            'et_auto_translate',
     802            wp_slash(intval($payload['enabled'] ?? '0'))
     803        );
     804        update_post_meta(
     805            intval($_POST['id']),
     806            'et_auto_translate_workflow_id',
     807            wp_slash($payload['workflow'] ?? '')
     808        );
    802809
    803810        wp_die();
    804 
    805811    }
    806812
  • easytranslate/trunk/admin/class-easy-translate-translation-updater.php

    r2768836 r3275340  
    1414     *
    1515     * @param $post_id
     16     * @throws Exception
    1617     */
    1718    public function run($post_id)
    1819    {
    1920        if (get_post_meta($post_id, 'et_auto_translate', true)
     21            && ($workflowId = get_post_meta($post_id, 'et_auto_translate_workflow_id', true))
    2022            && Easy_Translate_Translation_List::compare_post_source_language($post_id)
    2123            && Easy_Translate_Translation_List::check_dependencies()
     
    2628            if ($content[0]) {
    2729                $source = Easy_Translate_Translation_List::get_source_language();
    28                 $target_languages = Easy_Translate_Translation_List::get_translation_needs_update($post_id);
     30                $targetLanguages = Easy_Translate_Translation_List::get_translation_needs_update($post_id);
    2931
    30                 if ($this->update_strings($source, $target_languages, $content)) {
     32                if ($this->update_strings($source, $targetLanguages, $workflowId, $content)) {
    3133                    Easy_Translate_Translation_List::update_string_status(
    3234                        $a_string_id,
     
    3537                    Easy_Translate_Translation_List::update_duplicate_status(
    3638                        [$post_id],
    37                         $target_languages,
     39                        $targetLanguages,
    3840                        Easy_Translate_Translation_List::STATUS_WAITING
    3941                    );
     
    4850     * @param string $source
    4951     * @param array  $target
     52     * @param string $workflowId
    5053     * @param array  $content
    5154     * @return bool
    5255     */
    53     protected function update_strings($source, $target, $content)
     56    protected function update_strings(string $source, array $target, string $workflowId, $content)
    5457    {
    5558        $options = get_option(EASY_TRANSLATE_INTEGRATION_OPTION);
    5659        $service = new Easy_Translate_API_Laas(Easy_Translate_API_Integration::map_fields($options));
    57         $result = $service->translate($source, $target, $content);
     60        $result = $service->translate($source, $target, $content, $workflowId);
    5861
    5962        return !isset($result['error']);
  • easytranslate/trunk/admin/js/easy-translate-admin.js

    r2324915 r3275340  
    3232  $(document).ready(function ($) {
    3333
    34     $('.js-auto-translate').change(function () {
     34    $('.js-auto-translate').click(function () {
    3535
    36       var checkboxInput = $(this);
    37       if (checkboxInput.is(':checked')) {
    38         set_auto_translate(checkboxInput.val(), 1);
     36      var button = $(this);
     37      var postId = button.val();
     38      var booleanFlag = $('#auto-translate-enabled-' + postId).is(':checked');
     39      var workflow = $('#auto-translate-workflow-id-' + postId).val();
     40
     41      set_auto_translate(
     42        postId,
     43        {
     44          'enabled': booleanFlag === true ? 1 : 0,
     45          'workflow': workflow
     46        }
     47      );
     48    });
     49    $('.js-auto-translate-switch').change(function () {
     50      var input = $(this);
     51      var postId = input.val();
     52      var booleanFlag = input.is(':checked');
     53      if (booleanFlag === true) {
     54        $('#auto-translate-wrapper-' + postId).attr('style', 'display: inline;');
    3955      } else {
    40         set_auto_translate(checkboxInput.val(), 0);
     56        $('#auto-translate-wrapper-' + postId).attr('style', 'display: none;');
    4157      }
    42 
     58      var workflow = $('#auto-translate-workflow-id-' + postId).val();
     59      set_auto_translate(
     60        postId,
     61        {
     62          'enabled': booleanFlag === true ? 1 : 0,
     63          'workflow': workflow
     64        }
     65      );
    4366    });
    4467
    4568  });
    4669
    47   function set_auto_translate(id, value) {
     70  function set_auto_translate(id, payload) {
    4871
    4972    var data = {
    5073      action: 'et_set_auto_translate_action',
    5174      id: id,
    52       value: value
     75      payload: payload
    5376    };
    5477
  • easytranslate/trunk/easy-translate.php

    r3247689 r3275340  
    1515 * Plugin URI:        https://www.easytranslate.com/en/integrations/cms/wordpress-plugin/
    1616 * Description:       This is a short description of what the plugin does. It's displayed in the WordPress admin area.
    17  * Version:           2.0.0
     17 * Version:           2.0.1
    1818 * Author:            EasyTranslate
    1919 * Author URI:        https://easytranslate.com
     
    3434 * Rename this for your plugin and update it as you release new versions.
    3535 */
    36 define('EASY_TRANSLATE_VERSION', '2.0.0');
     36define('EASY_TRANSLATE_VERSION', '2.0.1');
    3737
    3838/**
  • easytranslate/trunk/includes/class-easy-translate.php

    r2742144 r3275340  
    139139            'load_post_translation_list_screen_options');
    140140        $this->loader->add_filter('set-screen-option', $plugin_admin, 'set_post_translation_list_screen_option', 10, 3);
    141         $this->loader->add_action('load-easytranslate_page_' . Easy_Translate_Admin::MENU_PARTIAL_TRANSLATIONS,
    142             $plugin_admin, 'load_string_translation_list_screen_options');
    143         $this->loader->add_filter('set-screen-option', $plugin_admin, 'set_string_translation_list_screen_option', 10,
    144             3);
    145         $this->loader->add_action('wp_ajax_nopriv_' . Easy_Translate_API_Service::WEB_HOOK_ACTION, $plugin_admin,
    146             'completed_task_callback');
     141        $this->loader->add_action(
     142            'load-easytranslate_page_' . Easy_Translate_Admin::MENU_PARTIAL_TRANSLATIONS,
     143            $plugin_admin,
     144            'load_string_translation_list_screen_options'
     145        );
     146        $this->loader->add_filter(
     147            'set-screen-option',
     148            $plugin_admin,
     149            'set_string_translation_list_screen_option',
     150            10,
     151            3
     152        );
     153        $this->loader->add_action(
     154            'wp_ajax_nopriv_' . Easy_Translate_API_Service::WEB_HOOK_ACTION,
     155            $plugin_admin,
     156            'completed_task_callback'
     157        );
    147158        $this->loader->add_action('edit_post', $plugin_admin, 'edit_post_hook', 101);
    148159        $this->loader->add_action('plugin_loaded', $plugin_admin, 'include_plugin_functions');
    149         $this->loader->add_action('wp_ajax_et_set_auto_translate_action', $plugin_admin, 'set_auto_translate_callback');
    150 
     160        $this->loader->add_action(
     161            'wp_ajax_et_set_auto_translate_action',
     162            $plugin_admin,
     163            'set_auto_translate_callback'
     164        );
    151165    }
    152166
Note: See TracChangeset for help on using the changeset viewer.