Automatizar la traducción de un archivo PO (i18n)

Muchas veces nos encontramos con la necesidad de generar la traducción de un archivo PO, esta tarea puede llevarnos mucho tiempo dependiendo de la cantidad de frases a traducir.
Para automatizar esta tarea he creado un script de traducción automática utilizando la API de Google Translate.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
set_time_limit(0);
$file = file('default.pot');
$new_file = $file;
foreach($file as $k => $line) {
    if(substr_count($line, 'msgid') == 1) {
        $parts = explode('"', $line);
        if(!empty($parts[1])) {
            $s = 'en';
            $d = 'es';
            $lang_pair = urlencode($s.'|'.$d);
            $q = urlencode($parts[1]);
            $url = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=".$q."&langpair=".$lang_pair;			
            $body = file_get_contents($url);			 
            $json = json_decode($body, true);
            $google = utf8_decode($json['responseData']['translatedText']);			
            $new_file[$k + 1] = 'msgstr "'.$google.'"';
        }
    }
}
file_put_contents('translated.txt', $new_file);
?>

Este script lee el archivo default.pot y genera la traducción del mismo teniendo en cuenta el idioma de origen $s = ‘en’; y el idioma de destino $d = ‘es’; y genera un archivo translated.txt con la correspondiente traducción.

Nacho nos da una solución similar en Python.

Tags: , ,

Un comentario en “Automatizar la traducción de un archivo PO (i18n)”

  1. Ren dice:

    Mmmm muy util.
    Sobre todo para facilitarle el rabajo a esos flojillos que le sacan la vuelta a los idiomas.
    Que los hay!

Deje un comentario