400 ] ); } if ( '' === trim( $text ) ) { return [ 'translatedText' => '' ]; } $body = [ 'text' => $text, 'targetLang' => $target_lang, 'engine' => $engine ?? Adara_Translate_Settings::get_engine(), 'format' => 'html', ]; if ( null !== $source_lang && '' !== $source_lang ) { $body['sourceLang'] = $source_lang; } $response = wp_remote_post( Adara_Translate_Settings::get_endpoint(), [ 'timeout' => 60, 'headers' => [ 'Content-Type' => 'application/json', 'X-API-Key' => $api_key, ], 'body' => wp_json_encode( $body ), ] ); if ( is_wp_error( $response ) ) { return $response; } $status = (int) wp_remote_retrieve_response_code( $response ); $payload = json_decode( wp_remote_retrieve_body( $response ), true ); if ( $status < 200 || $status >= 300 ) { $message = is_array( $payload ) && isset( $payload['error'] ) ? (string) $payload['error'] : sprintf( /* translators: %d: HTTP status code */ __( 'Adara API returned HTTP %d.', 'adara-translate' ), $status ); return new WP_Error( 'adara_api_error', $message, [ 'status' => $status, 'payload' => $payload ] ); } if ( ! is_array( $payload ) || ! isset( $payload['translatedText'] ) ) { return new WP_Error( 'adara_bad_response', __( 'Unexpected response from Adara API.', 'adara-translate' ), [ 'status' => 502 ] ); } return $payload; } }