Commit inicial con archivos existentes
This commit is contained in:
66
includes/Translate.php
Executable file
66
includes/Translate.php
Executable file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
// includes/Translate.php
|
||||
|
||||
use GuzzleHttp\Client;
|
||||
use GuzzleHttp\Exception\RequestException;
|
||||
|
||||
class Translate {
|
||||
private $client;
|
||||
|
||||
public function __construct() {
|
||||
$this->client = new Client([
|
||||
'base_uri' => LIBRETRANSLATE_URL,
|
||||
'timeout' => 10.0,
|
||||
'verify' => false
|
||||
]);
|
||||
}
|
||||
|
||||
public function translate($text, $targetLang, $sourceLang = 'auto') {
|
||||
try {
|
||||
$response = $this->client->post('/translate', [
|
||||
'json' => [
|
||||
'q' => $text,
|
||||
'source' => $sourceLang,
|
||||
'target' => $targetLang,
|
||||
'format' => 'text'
|
||||
]
|
||||
]);
|
||||
|
||||
$body = json_decode($response->getBody()->getContents(), true);
|
||||
|
||||
if (isset($body['translatedText'])) {
|
||||
return $body['translatedText'];
|
||||
}
|
||||
|
||||
return null;
|
||||
} catch (RequestException $e) {
|
||||
error_log("Error en traducción: " . $e->getMessage());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public function translateBatch($texts, $targetLang, $sourceLang = 'auto') {
|
||||
try {
|
||||
$response = $this->client->post('/translate', [
|
||||
'json' => [
|
||||
'q' => $texts,
|
||||
'source' => $sourceLang,
|
||||
'target' => $targetLang,
|
||||
'format' => 'text'
|
||||
]
|
||||
]);
|
||||
|
||||
$body = json_decode($response->getBody()->getContents(), true);
|
||||
|
||||
// LibreTranslate devuelve un array de objetos con la clave 'translatedText'
|
||||
if (isset($body['translatedText']) && is_array($body['translatedText'])) {
|
||||
return $body['translatedText'];
|
||||
}
|
||||
} catch (RequestException $e) {
|
||||
error_log("Error en traducción por lotes: " . $e->getMessage());
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user