Programación con APIs de traducción.

La globalización ha hecho que hoy en día debamos plantear un negocio con un perfil de clientes muy variado y por supuesto ofrecer nuestra web en el número mayor de idiomas para incrementar nuestras ventas.

Fuente: https://www.flickr.com/photos/11527081@N05/
Fuente: https://www.flickr.com/photos/11527081@N05/

Para traducir los elementos que utilizamos en nuestras bases de datos o incluso en nuestro blog o newsletter podemos hacer uso de un sistema de traducción automático como el ofrecido por Google o Microsoft que hoy en día ofrecen una calidad muy aceptable.

Los servicios ofrecidos por ambas compañías durante muchos años eran gratuitos sin embargo con el paso del tiempo y decididas a rentabilizar su inversión han restringido el máximo de traducciones que se pueden hacer mes a mes.

En el caso de GOOGLE directamente ha pasado a ser un servicio de pago y Microsoft Translate ofrece un sistema de traducción de hasta 2 millones de caracteres mensuales sin coste. Si superamos dichos limites deberemos pagar por el uso con nuevos limites mensuales.

La cantidad de caracteres que tenemos disponible puede consumirse muy rápido según realicemos una óptima programación en nuestros servicios webs. En AGENCIA LA NAVE pensamos en el ahorro y por eso contemplamos un código rápido y optimizado utilizando los recursos gratuitos más interesantes en el sector.

A modo de ejemplo no será eficiente realizar una traducción cada vez que una persona de fuera visite nuestra página web, sino que se deberán cachear los contenidos para evitar consumir el API de Microsoft. Además puede resultar muy eficiente usar el API de traducción y almacenar los datos en las bases de datos ya traducidos para evitar lentitud en las consultas.

Para poder utilizar el API se deberá uno registrar primero en la web de aplicaciones de Microsoft, solicitar el acceso al API Translate y obtener un Key de autorización del servicio. Una vez disponemos de ese servicio podremos interactuar con Microsoft mediante una llamada en PHP que conecte con CURL a sus servidores por SSL.

La autentificación es básica e indica un usuario “user” y como password el propio identificador Key obtenido de la plataforma de registro. Es importante controlar cuando el API no traduce para en ese caso avisar al administrador de la web.

function Traducir ($texto,$from,$to) {

    $accountKey = 'KEY_USO';

    $url = 'https://api.datamarket.azure.com/Data.ashx/Bing/MicrosoftTranslator/v1/Translate?Text=%27'.urlencode($texto).'%27&To=%27' . $to . '%27&From=%27' . $from .

    ob_start();
    $handle = curl_init ($url);
    if ($handle) {
        $curlOptArr = array(
            CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
            CURLOPT_USERPWD => $accountKey . ':' . $accountKey,
            CURLOPT_RETURNTRANSFER => TRUE

        );

        curl_setopt_array($handle, $curlOptArr);
        $response = curl_exec($handle);
        $data = json_decode($response,true);
        //print_r($data);
        if (is_array($data)) {
            if (isset($data['d']['results'][0]['Text'])) {
                return $data['d']['results'][0]['Text'];
            } else {
                print false;
            }
        } else {
            $traducido= $text;
        }
        $errRet = curl_error($handle);
        curl_close($handle);
        return $traducido;
    }

    ob_end_clean();
}

No debemos olvidar contemplar los casos en los que la traducción no funciona para evitar mensajes extraños en los idiomas. Es muy importante utilizar las cabeceras adecuadas de tipo EXPIRE para indicar si se debe cachear o no el contenido según si puede o no ser modificado a posteriori.

En nuestra web hemos integrado el servicio mediante un CRON que se ejecuta cuando se detecta que hay un articulo en nuestro blog nuevo que lanza automáticamente el sistema de traducción y de esa forma se ahorra en traducciones y se evita de forma indirecta la obligación de pagar 20€/mes por aumentar el servicio gratuito.

Como podéis ver en este articulo gracias a las librerías gratuitas en la red podemos ofrecer un servicio traducido a varios idiomas que nos ahorrará un tiempo muy valioso. Se puede incluso integrar en un sistema de “correo electrónico” o incluso en un servicio de soporte. No dudéis contactar con nosotros para un mayor soporte.

Enlaces: Microsoft Code Translator | API en google

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *