private function show_translate_option()

in admin/AmazonAI-TranslateConfiguration.php [138:213]


    private function show_translate_option($src_lang, $voice_list, $lanuage, $language_name, $language_label, $selected_display_value)
    {

        if (empty($src_lang)) {
            $src_lang = 'en';
        }

        if ($src_lang == $lanuage) {
            //return;
        }

        $lan_option       = 'amazon_polly_trans_langs_' . $lanuage;
        $lan_voice_option = 'amazon_polly_trans_langs_' . $lanuage . '_voice';
        $lan_label_option = 'amazon_polly_trans_langs_' . $lanuage . '_label';
        $lan_display = 'amazon_polly_trans_langs_' . $lanuage . '_display';
        $disabled         = '';
        if ( $src_lang == $lanuage ) {
            $disabled = 'disabled';
        }

        #Some translations between languages are not supported by the service.
        #Details: https://docs.aws.amazon.com/translate/latest/dg/pairs.html
        if (!$this->common->is_translation_supported($src_lang, $lanuage)) {
          $disabled = 'disabled';
        }

        echo '<tr>';
        echo '<td><input type="checkbox" name="' . $lan_option . '" id="' . $lan_option . '" ' . $this->common->check_if_language_is_checked($lanuage, $src_lang) . ' ' . $disabled . '>' . $language_name . ' </td><td>';
        $voice_id = get_option($lan_voice_option);

        if ( $src_lang != $lanuage ) {
          if ($this->common->is_audio_for_translations_enabled()) {
            echo '&emsp;&emsp;Voice: <select name="' . $lan_voice_option . '" id="' . $lan_voice_option . '" ' . $disabled . '>';
            foreach ($voice_list['Voices'] as $voice) {
                if (strpos($voice['LanguageName'], $language_name) !== false) {
                    echo '<option value="' . esc_attr($voice['Id']) . '" ';
                    if (strcmp($voice_id, $voice['Id']) === 0) {
                        echo 'selected="selected"';
                    }

                    echo '>' . esc_attr($voice['LanguageName']) . ' - ' . esc_attr($voice['Id']) . '</option>';
                }
            }

            echo '</select>';
          }
        }
        echo '</td>';

        echo '<td>Label: <input type="text" width="70" class="regular-text" name="' . $lan_label_option . '" id="' . $lan_label_option . '" value="' . esc_attr( $language_label ) . '"></td>';


        echo '<td>';
        $display_values   = [ 'Flag', 'Label', 'Flag + Label' ];


        $only_labels = array("af","am","bn","bs","fa-AF","ha","ps","so","sw","tl","ta","ur","sr","ar", "fa", "hi", "ms");
        if ( in_array($lanuage, $only_labels) ) {
            $display_values   = [ 'Label' ];
        }

        echo 'Display: <select name="' . $lan_display . '" id="' . $lan_display . '" >';
        foreach ( $display_values as $display_value ) {
          echo '<option value="' . esc_attr( $display_value ) . '" ';
          if ( strcmp( $selected_display_value, $display_value ) === 0 ) {
            echo 'selected="selected"';
          }
          echo '>' . esc_attr( $display_value ) . '</option>';
        }
        echo '</select>';
        echo '</td>';



        echo '</tr>';
    }