Making WordPress.org


Ignore:
Timestamp:
03/29/2023 02:13:09 PM (3 years ago)
Author:
amieiro
Message:

Translate: Add the backend items to support OpenAI and DeepL

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-gp-customizations/templates/settings-edit.php

    r11837 r12511  
    2323    );
    2424}
     25
     26$gp_external_translations = get_user_option( 'gp_external_translations' );
    2527?>
    2628
    2729<table class="form-table">
    2830    <tr>
    29         <th><label for="per_page"><?php _e( 'Number of items per page:', 'glotpress' ); ?></label></th>
     31        <th><label for="per_page"><?php esc_html_e( 'Number of items per page:', 'glotpress' ); ?></label></th>
    3032        <td><input type="number" id="per_page" name="per_page" value="<?php echo esc_attr( $gp_per_page ); ?>"/></td>
    3133    </tr>
    3234    <tr>
    33         <th><label for="default_sort[by]"><?php _e( 'Default Sort By:', 'glotpress' ); ?></label></th>
     35        <th><label for="default_sort[by]"><?php esc_html_e( 'Default Sort By:', 'glotpress' ); ?></label></th>
    3436        <td>
    3537            <?php
     
    4143    </tr>
    4244    <tr>
    43         <th><label for="default_sort[how]"><?php _e( 'Default Sort Order:', 'glotpress' ); ?></label></th>
     45        <th><label for="default_sort[how]"><?php esc_html_e( 'Default Sort Order:', 'glotpress' ); ?></label></th>
    4446        <td>
    4547            <?php
     
    6163         and I have to modify the GlotPress core to add a new configuration item. -->
    6264    <tr>
    63         <th><label for="default_sort[notifications_optin]"><?php _e( 'I want to receive notifications of discussions:', 'glotpress' ); ?></label></th>
     65        <th><label for="default_sort[notifications_optin]"><?php esc_html_e( 'I want to receive notifications of discussions:', 'glotpress' ); ?></label></th>
    6466        <td><input type="checkbox" id="default_sort[notifications_optin]" name="default_sort[notifications_optin]" <?php gp_checked( 'on' == gp_array_get( $gp_default_sort, 'notifications_optin', 'off' ) ); ?> /></td>
    6567    </tr>
     68    <tr>
     69        <th>
     70            <h4><?php esc_html_e( 'External translating services', 'glotpress' ); ?></h4>
     71        </th>
     72    </tr>
     73    <tr>
     74        <th><label for="default_sort[external_services_exclude_some_status]"><?php esc_html_e( 'Don\'t use OpenAI and DeepL with translations in current, rejected or old status.', 'glotpress' ); ?></label></th>
     75        <td><input type="checkbox" id="default_sort[external_services_exclude_some_status]" name="default_sort[external_services_exclude_some_status]" <?php gp_checked( 'on' == gp_array_get( $gp_default_sort, 'external_services_exclude_some_status', 'off' ) ); ?> /></td>
     76    </tr>
     77    <tr>
     78        <th>
     79            <h4><?php esc_html_e( 'OpenAI (ChatGPT) settings', 'glotpress' ); ?></h4>
     80        </th>
     81    </tr>
     82    <tr>
     83        <th><label for="default_sort[openai_api_key]">
     84                <?php esc_html_e( 'OpenAI API Key', 'glotpress' ); ?>
     85            </label>
     86                    <?php
     87                    if ( gp_array_get( $gp_external_translations, 'openai_translations_used', 0 ) > 0 ) {
     88                        echo '<br>';
     89                        echo '<small>';
     90                        /* translators: Number of OpenAI translations used. */
     91                        echo esc_html( sprintf( _n( '%s OpenAI translation used:', '%s OpenAI translations used:', 'glotpress' ), number_format_i18n( gp_array_get( $gp_external_translations, 'openai_translations_used', 0 ) ) ) );
     92                        if ( gp_array_get( $gp_external_translations, 'openai_same_translations_used', 0 ) > 0 ) {
     93                            echo ' ' . esc_html(
     94                                sprintf(
     95                                /* translators: 1: Number of OpenAI translations used with modifications. 2: Number of OpenAI translations used without modifications. */
     96                                    __( '%1$s with modifications and %2$s without modifications.', 'glotpress' ),
     97                                    number_format_i18n( gp_array_get( $gp_external_translations, 'openai_translations_used', 0 ) - gp_array_get( $gp_external_translations, 'openai_same_translations_used', 0 ) ),
     98                                    number_format_i18n( gp_array_get( $gp_external_translations, 'openai_same_translations_used', 0 ) ),
     99                                )
     100                            );
     101                        }
     102                        echo '</small>';
     103                    }
     104                    ?>
     105                <br>
     106                <a href="https://platform.openai.com/account/usage" target="_blank"><small>
     107                    <?php
     108                    $openai_tokens_used = gp_array_get( $gp_external_translations, 'openai_tokens_used', 0 );
     109                    if ( $openai_tokens_used > 0 ) {
     110                        /* translators: Number of OpenAI tokens used. */
     111                        echo esc_html( sprintf( __( 'OpenAI tokens used: %s', 'glotpress' ), number_format_i18n( $openai_tokens_used ) ) );
     112                    }
     113                    ?>
     114                </small></a>
     115                <br>
     116                <br>
     117            </th>
     118        <td><input type="text" class="openai_api_key" id="default_sort[openai_api_key]" name="default_sort[openai_api_key]" value="<?php echo esc_html( gp_array_get( $gp_default_sort, 'openai_api_key', '' ) ); ?>" placeholder="Enter your OpenAI API key" /></td>
     119    </tr>
     120    <tr>
     121        <th><label for="default_sort[openai_custom_prompt]"><?php esc_html_e( 'Custom Prompt', 'glotpress' ); ?></label></th>
     122        <td><textarea class="openai_custom_prompt" id="default_sort[openai_custom_prompt]" name="default_sort[openai_custom_prompt]" placeholder="Enter your custom prompt for ChatGPT translation suggestions"><?php echo esc_html( gp_array_get( $gp_default_sort, 'openai_custom_prompt', '' ) ); ?></textarea></td>
     123    </tr>
     124    <tr>
     125        <th><label for="default_sort[openai_temperature]"><?php esc_html_e( 'Temperature', 'glotpress' ); ?></label></th>
     126        <td><input type="number" min="0" max="2" step=".1" class="openai_temperature" id="default_sort[openai_temperature]" name="default_sort[openai_temperature]" value="<?php echo esc_html( gp_array_get( $gp_default_sort, 'openai_temperature', 0 ) ); ?>" placeholder="Enter your OpenAI key" /></td>
     127    </tr>
     128    <tr>
     129        <th>
     130            <h4><?php esc_html_e( 'DeepL settings', 'glotpress' ); ?></h4>
     131        </th>
     132    </tr>
     133    <tr>
     134        <th><label for="default_sort[deepl_api_key]">
     135                <?php esc_html_e( 'DeepL Free API Key', 'glotpress' ); ?>
     136            </label>
     137                    <?php
     138                    if ( gp_array_get( $gp_external_translations, 'deepl_translations_used', 0 ) > 0 ) {
     139                        echo '<br>';
     140                        echo '<small>';
     141                        /* translators: Number of DeepL translations used. */
     142                        echo esc_html( sprintf( _n( '%s DeepL translation used:', '%s DeepL translations used:', 'glotpress' ), number_format_i18n( gp_array_get( $gp_external_translations, 'deepl_translations_used', 0 ) ) ) );
     143                        if ( gp_array_get( $gp_external_translations, 'deepl_same_translations_used', 0 ) > 0 ) {
     144                            echo ' ' . esc_html(
     145                                sprintf(
     146                                /* translators: 1: Number of DeepL translations used with modifications. 2: Number of DeepL translations used without modifications. */
     147                                    __( '%1$s with modifications and %2$s without modifications.', 'glotpress' ),
     148                                    number_format_i18n( gp_array_get( $gp_external_translations, 'deepl_translations_used', 0 ) - gp_array_get( $gp_external_translations, 'deepl_same_translations_used', 0 ) ),
     149                                    number_format_i18n( gp_array_get( $gp_external_translations, 'deepl_same_translations_used', 0 ) ),
     150                                )
     151                            );
     152                        }
     153                        echo '</small>';
     154                    }
     155                    ?>
     156                <br>
     157                <a href="https://www.deepl.com/account/usage" target="_blank"><small>
     158                        <?php
     159                        $deepl_chars_used = gp_array_get( $gp_external_translations, 'deepl_chars_used', 0 );
     160                        if ( $deepl_chars_used > 0 ) {
     161                            /* translators: Number of chars translated with DeepL. */
     162                            echo esc_html( sprintf( __( 'Chars translated with DeepL: %s', 'glotpress' ), number_format_i18n( $deepl_chars_used ) ) );
     163                        }
     164                        ?>
     165                    </small></a>
     166            </th>
     167        <td><input type="text" class="deepl_api_key" id="default_sort[deepl_api_key]" name="default_sort[deepl_api_key]" value="<?php echo esc_html( gp_array_get( $gp_default_sort, 'deepl_api_key' ) ); ?>" placeholder="Enter your DeepL API key" /></td>
     168    </tr>
    66169</table>
Note: See TracChangeset for help on using the changeset viewer.