'openai', 'openai_key' => '', 'openai_org' => '', 'openai_temp' => '0', 'openai_model' => 'gpt-4o', 'claude_key' => '', 'claude_model' => 'claude-sonnet-4-5-20250929', 'custom_prompt' => '', ] ); register_setting( 'polylai_translator_options', 'polylai_translator_options', [ "type" => "array", "sanitize_callback" => "polylai_Utils::sanitize_options", ] ); add_settings_section( 'general_settings', '', [$this, 'general_settings'], 'polylai_translator' ); add_settings_section( 'openai_settings', '', [$this, 'openai_settings'], 'polylai_translator' ); add_settings_section( 'claude_settings', '', [$this, 'claude_settings'], 'polylai_translator' ); add_settings_field( 'polylai_ai_engine', __( 'AI Engine', 'ai-translator-for-polylang' ), [$this, 'polylai_ai_engine'], 'polylai_translator', 'general_settings' ); add_settings_field( 'polylai_custom_prompt', __( 'Customize prompt', 'ai-translator-for-polylang' ), [$this, 'polylai_custom_prompt'], 'polylai_translator', 'general_settings' ); add_settings_field( 'polylai_openai_key', __( 'OpenAI API Key', 'ai-translator-for-polylang' ), [$this, 'polylai_openai_key'], 'polylai_translator', 'openai_settings' ); add_settings_field( 'polylai_openai_org', __( 'OpenAI Organization ID', 'ai-translator-for-polylang' ), [$this, 'polylai_openai_org'], 'polylai_translator', 'openai_settings' ); add_settings_field( 'polylai_openai_model', __( 'OpenAI Model', 'ai-translator-for-polylang' ), [$this, 'polylai_openai_model'], 'polylai_translator', 'openai_settings' ); add_settings_field( 'polylai_langs', __( 'Languages', 'ai-translator-for-polylang' ), [$this, 'polylai_langs'], 'polylai_translator', 'general_settings' ); } public function openai_settings() { ?> "OpenAI", "claude" => "Claude", ]; ?>
.

1, 'hide_if_empty' => 0, ] ); $default_lang = pll_default_language( 'slug' ); $default_lang_name = pll_default_language( 'name' ); $allowed = polylai_Utils::allowed_langs(); ?>
can_use_premium_code__premium_only() && count( $langs ) > 1 ) { ?>
.
' />

)

' />

)

"Claude Opus 4.8", "claude-sonnet-4-6" => "Claude Sonnet 4.6", "claude-opus-4-6" => "Claude Opus 4.6", "claude-sonnet-4-5-20250929" => "Claude Sonnet 4.5", "claude-haiku-4-5-20251001" => "Claude Haiku 4.5", ]; if ( !isset( $items[$options['claude_model']] ) ) { $options['claude_model'] = 'claude-sonnet-4-6'; } ?>
' />

)

'; } ?>
' />

' />

" . esc_html( $data['error']['message'] ) . ""; return; } $models = self::get_openai_model_ids( $data ); ?>

gpt4 and o1 (if available) in order to get the best translation quality.', 'ai-translator-for-polylang' ); ?>

id ) ) { $model_id = $model->id; } else { if ( is_string( $model ) ) { $model_id = $model; } else { continue; } } } if ( !is_string( $model_id ) ) { continue; } if ( polylai_ChatGPT::isSupportedTranslationModel( $model_id ) ) { $models[] = $model_id; } } $models = array_values( array_unique( $models ) ); return ( count( $models ) > 0 ? $models : ['gpt-4o'] ); } public function general_settings() { ?>
" . __( 'Cron last activity:', 'ai-translator-for-polylang' ) . " " . esc_html( $running ) . ""; } ?>