'English', 'es' => 'Español', 'pt' => 'Português', 'fr' => 'Français', 'de' => 'Deutsch', 'ru' => 'русский', 'ja' => '日本語', 'it' => 'Italiano', 'zh' => '中文', 'nl' => 'Nederlands', 'ko' => '한국어', 'ar' => 'العربية', 'tr' => 'Türkçe', 'pl' => 'Polski', 'uk' => 'українська', 'fa' => 'فارسی', 'sv' => 'Svenska', 'cs' => 'čeština', 'da' => 'Dansk', 'fi' => 'Suomi', 'hu' => 'Magyar', 'ca' => 'Català', 'eu' => 'Euskara', 'gl' => 'Galego', 'ast' => 'Asturianu' ); return $idiomas; } function aicc_idiomas_traducidos() { // Códigos ISO 639-1 de los idiomas $languages = array( "en" => __( 'English', 'ai-content-creator' ), "es" => __( 'Spanish', 'ai-content-creator' ), "pt" => __( 'Portuguese', 'ai-content-creator' ), "fr" => __( 'French', 'ai-content-creator' ), "de" => __( 'German', 'ai-content-creator' ), "ru" => __( 'Russian', 'ai-content-creator' ), "ja" => __( 'Japanese', 'ai-content-creator' ), "it" => __( 'Italian', 'ai-content-creator' ), "zh" => __( 'Chinese', 'ai-content-creator' ), "nl" => __( 'Dutch', 'ai-content-creator' ), "ko" => __( 'Korean', 'ai-content-creator' ), "ar" => __( 'Arabic', 'ai-content-creator' ), "tr" => __( 'Turkish', 'ai-content-creator' ), "pl" => __( 'Polish', 'ai-content-creator' ), "uk" => __( 'Ukrainian', 'ai-content-creator' ), "fa" => __( 'Persian', 'ai-content-creator' ), "sv" => __( 'Swedish', 'ai-content-creator' ), "cs" => __( 'Czech', 'ai-content-creator' ), "da" => __( 'Danish', 'ai-content-creator' ), "fi" => __( 'Finnish', 'ai-content-creator' ), "hu" => __( 'Hungarian', 'ai-content-creator' ), "ca" => __( 'Catalan', 'ai-content-creator' ), "eu" => __( 'Basque', 'ai-content-creator' ), "gl" => __( 'Galician', 'ai-content-creator' ), "ast" => __( 'Asturian', 'ai-content-creator' ), ); return $languages; } function aicc_es_valido_idioma( $idioma ) { // Devuelve un booleano indicando si el idioma es correcto o no return array_key_exists( $idioma, aicc_idiomas() ); } function aicc_codigo_idioma_actual() { // Códigos ISO 639-1 $locale = get_locale(); $codigo_idioma = substr( $locale, 0, 2 ); return $codigo_idioma; } function aicc_nombre_idioma_actual() { return aicc_nombre_idioma( aicc_codigo_idioma_actual() ); } function aicc_nombre_idioma( $codigo ) { // Códigos ISO 639-1 $idiomas = aicc_idiomas(); return $idiomas[$codigo]; } function aicc_nombre_idioma_traducido( $codigo ) { // Códigos ISO 639-1 $idiomas = aicc_idiomas_traducidos(); return $idiomas[$codigo]; } function aicc_codigo_idioma( $idioma ) { // Verifica si un idioma está en la lista de idiomas soportados por GPT-3 y devuelve su código ISO 639-1 correspondiente // al idioma si está en la lista, o una cadena vacía si no lo está. // Invierte la lista de idiomas, así es fácil comprobar si $idiomas_soportados = aicc_intercambiar_claves_por_valores( aicc_idiomas() ); // Verifica si el idioma está en la lista if ( isset( $idiomas_soportados[$idioma] ) ) { return $idiomas_soportados[$idioma]; } else { return ''; } } function aicc_codigo_idioma_omision() { $codigo_idioma = aicc_codigo_idioma_actual(); // Si el idioma no está soportado, toma inglés por omisión . if ( ! aicc_nombre_idioma( $codigo_idioma ) ) { //$idioma= aicc_nombre_idioma( 'en' ); $codigo_idioma= 'en'; } return $codigo_idioma; } function aicc_intercambiar_claves_por_valores( $array ) { // Intercambia las claves por los valores en un array $nuevo_array = array(); foreach ( $array as $clave => $valor ) { $nuevo_array[$valor] = $clave; } return $nuevo_array; } function aicc_traduce_error_externo( $error ) { // Errores conocidos de la API que pueden traducirse como cadenas fijas. if ( preg_match ( '/^Incorrect API key provided: (.*). You can find your API key at https:\/\/platform\.openai\.com\/account\/api-keys\./',$error ) ) { $error = __( 'Incorrect API key provided.', 'ai-content-creator' ); $error .= ' '; $error .= sprintf( __( 'You can find your API key at %s.', 'ai-content-creator' ), 'https://platform.openai.com/account/api-keys' ); } elseif ( preg_match ( '/Please reduce your prompt; or completion length\.$/',$error ) ) { $error = __( 'The sum of tokens in the request and response may exceed the maximum allowed for the model. Please reduce the text in your request.', 'ai-content-creator' ); } elseif ( 'You didn\'t provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you\'re accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.' == $error ) { $error = __( 'You didn\'t provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY), or as the password field (with blank username) if you\'re accessing the API from your browser and are prompted for a username and password. You can obtain an API key from https://platform.openai.com/account/api-keys.', 'ai-content-creator' ); } elseif ( 'That model does not exist' == $error ) { // Se produce también al tratar de usar gpt-4 durante la beta sin tenerlo autorizado $error = __( 'That model does not exist', 'ai-content-creator' ); } elseif ( 'you must provide a model parameter' == $error ) { $error = __( 'you must provide a model parameter', 'ai-content-creator' ); } elseif ( preg_match ( '/^Invalid URL/',$error ) ) { $error = __( 'Invalid URL address.', 'ai-content-creator' ); } elseif ( preg_match ( '/^This is a chat model and not supported in the/',$error ) ) { $error = __( 'The required model is not supported at this URL address.', 'ai-content-creator' ); } // This model's maximum context length is 4097 tokens, however you requested 4207 tokens (207 in your prompt; 4000 for the completion). Please reduce your prompt; or completion length. return $error; }