Fusionando archivos de traducción

This topic contains 9 replies, has 3 voices, and was last updated by  jrfern 6 years, 6 months ago.

  • Author
    Posts
  • #1279

    pablonimo
    Member

    Hola a todos,

    Ahora mismo no puedo acceder a la forja para recuperar los archivos a traducir pero me dijo un pajarito que mañana seguramente podamos.

    La duda que me entra es que antes del verano desde Galicia no enviamos archivo traducido para la versión actual, lo que no quiere decir que no lo tuviéramos traducido 😉 Lo tenemos aquí: http://centros.edu.xunta.es/websdinamicas/entrans/main.php?root=12 y la fecha de traducción es de 2012-07-05.

    Así pues, existe alguna forma para fusionar los archivos que me vaya a encontrar en la forja? ya que no va a tener las traducciones hechas por nosotros….

    ¿como puedo hacer? Muchas gracias!

  • #1280

    Hola

    Habla con Juan Rafael.

    http://exelearning.net/forums/topic/llamada-a-traductores/

  • #1283

    jrfern
    Member

    Yo tengo unas chuletillas. Para actualizar el fichero que hay que traducir, sin perder las traducciones anteriores:

    msgmerge MiOld.po NewVersion.po > Merged.po

     

    Para ver qué cantidad de trabajo me queda:

    msgfmt -v -o /dev/null Fichero.es.po

    Evidentemente los nombres son orientativos. Para más información, info gettext. O aquí 🙂

     

  • #1369

    pablonimo
    Member

    Muchas gracias,

    Y como no podía ser de otra forma ya vengo con dudas 😉 Tenéis que perdonar, es la primera vez que hago esto! 😉 Así pues intentaré esforzarme para expresar mis dudas, a ver si consigo hacerme entender….

    Como os decía mi intención es fusionar dos archivos exe_gl.po, uno que tradujimos en Julio pero que no os enviamos (abalar_exe_gl.po) y el que actualmente está en la rama trunk en la forja del CENATIC. Al realizar un merge de los archivos que quería fusionar, este me detectó errores en los. El archivo que descargué de nuestra plataforma de traducción [1] y el descargado de la rama trunk de la forja del CENATICA [2]. Así pues, analizo los dos archivos e intengo depurarlos de la siguiente forma

    Los errores que aparecieron en nuestro propio archivo eran del tipo [1]

    abalar_exe_gl.po:5133: definición del mensaje duplicada…
    abalar_exe_gl.po:29: …this is the location of the first definition

    Voy al archivo y veo que el código al que se refiere:

    abalar_exe_gl.po:5133: definición del mensaje duplicada…

    #: exe/engine/appletidevice.py:541
    msgid “”
    ” If the applet you’re adding was generated \n”
    “by one of the programs in this drop down, please select it, \n”
    “then add the data/applet file generated by your program.”
    msgstr “”
    “Se o applet que está engadindo foi xerado por un dos programas deste, \n”
    “menú despregable, porfavor seleccioneo, e a continuación engada o \n”
    “ficheiro de datos/applet xerado polo seu programa.”

    Y

    abalar_exe_gl.po:29: …this is the location of the first definition

    #: exe/engine/appletidevice.py:351
    msgid “”
    ” If the applet you’re adding was generated \n”
    “by one of the programs in this drop down, please select it, \n”
    “then add the data/applet file generated by your program.”
    msgstr “”
    “Se o applet que está engadindo foi xerado por un dos programas deste “
    “menú despregable, porfavor seleccioneo, e a continuación engada o “
    “ficheiro de datos/applet xerado polo seu programa.”

    Así pues elimino el código de las líneas con número más alto….

    Los errores en el archivo descargado del CENATIC [2] eran del tipo:

    AL REALIZAR UN msgfmt -o -v /dev/null trunk_exe_gl.po ME RESPONDÍA:

    trunk_exe_gl.po:4782:2: syntax error
    trunk_exe_gl.po:4782: palabra clave “script” desconocida
    trunk_exe_gl.po:4783: palabra clave “function” desconocida
    trunk_exe_gl.po:4784: palabra clave “var” desconocida
    trunk_exe_gl.po:4785: palabra clave “var” desconocida
    trunk_exe_gl.po:4786: palabra clave “if” desconocida
    trunk_exe_gl.po:4787: palabra clave “errorsblock” desconocida
    trunk_exe_gl.po:4788: palabra clave “errorsgroup” desconocida
    trunk_exe_gl.po:4789: palabra clave “else” desconocida
    trunk_exe_gl.po:4790: palabra clave “errorsblock” desconocida
    trunk_exe_gl.po:4791: palabra clave “errorsgroup” desconocida
    trunk_exe_gl.po:4794: palabra clave “script” desconocida
    trunk_exe_gl.po:4795: palabra clave “div” desconocida
    trunk_exe_gl.po:4796: palabra clave “a” desconocida
    trunk_exe_gl.po:4797: palabra clave “div” desconocida
    trunk_exe_gl.po:4798: palabra clave “div” desconocida
    trunk_exe_gl.po:4799: palabra clave “div” desconocida
    trunk_exe_gl.po:4800: palabra clave “div” desconocida
    trunk_exe_gl.po:4801: palabra clave “quot” desconocida
    trunk_exe_gl.po:4803: palabra clave “quot” desconocida
    msgfmt: demasiados errores, programa interrumpido

    Analizando el código veo que se refiere a:

    <script language=”JavaScript” type=”text/javascript”>//<![CDATA[
            function toggle_ffErrors() {
                var errorsblock = document.getElementById(“ffErrorsBlock”);
                var errorsgroup = document.getElementById(“ffErrors”);
                if (errorsblock.style.display == “none”) {
                    errorsblock.style.display = “block”;
                    errorsgroup.style.right = “10px”;
                } else {
                    errorsblock.style.display = “none”;
                    errorsgroup.style.right = “300px”;
                }
            }
    //]]></script>
    <div id=”ffErrors”>
    <a href=”javascript:toggle_ffErrors();”>Click to toggle</a>
    <div id=”ffErrorsBlock”>
        <div class=”error”>does not end with &lt;/html&gt; tag</div>
        <div class=”error”>does not end with &lt;/body&gt; tag</div>
        <div class=”info”>The output has ended thus: oria&quot;
    </div></div>
    </body></html>

    Procedo a eliminar estas etiquetas

    Una vez depurados los dos archivos hago el merge y resulta con éxito

    msgmerge abalar_exe_gl_sen_erros.po trunk_exe_gl_sen_erros.po > merged.po

    Realizo el msgfmt del merged.po con el siguiente resultado

    msgfmt -v -o /dev/null merged.po
    798 mensajes traducidos, 13 traducciones difusas, 30 mensajes sin traducir.

    Analizando las cabeceras de los arvhicos veo que, cuanto menos, no ha fusionado las cabeceras. Sin embargo, comparo el estado de la traducción de cada uno de los archivos originales por separado:

    msgfmt -v -o /dev/null abalar_exe_gl_sen_erros.po
    806 mensajes traducidos, 7 traducciones difusas.

    msgfmt -v -o /dev/null trunk_exe_gl_sen_erros.po
    731 mensajes traducidos, 17 traducciones difusas, 93 mensajes sin traducir.

    Hasta aquí bien, con la excepción del detalle de las cabeceras, interpreto que cadenas que estaban sin traducir en el trunk estaban traducidas en nuestro archivo, como esperaba 😉

    PERO! 😉

    Si realizo el merge intercambiando el orden de los archivos obtengo resultados diferentes!

    msgmerge trunk_exe_gl_sen_erros.po abalar_exe_gl_sen_erros.po > merged2.po

    Compruebo:

    msgfmt -v -o /dev/null merged2.po
    738 mensajes traducidos, 19 traducciones difusas, 56 mensajes sin traducir.

    Así pues ya no lo entiendo 🙁

    Mil gracias y perdonen mi “falta de ignorancia” 😉

     

    [1] http://centros.edu.xunta.es/websdinamicas/entrans/main.php?root=12
    [2] https://forja.cenatic.es/scm/viewvc.php/trunk/exe/locale/gl/exe_gl.po?logsort=rev&view=log&root=iteexe&sortdir=down&pathrev=499

     

  • #1371

    jrfern
    Member

    Ya estoy mirando tus dos PO. En principio, la fácil: la fusión no tiene la propiedad transitiva, coge un fichero viejo, añade cadenas nuevas y marca fuzzies.

    Y ahora a estudiar.

  • #1372

    jrfern
    Member

    No he tardado tanto.

    He empezado mirando el que llamas abalar, el que está en entrans. Me parece que entrans ha hecho un destrozo considerable en el fichero.

    Miro la cabecera. ¿Cómo puede haber tres last-translator y dos equipos distintos? Es bueno llevar un registro de traductores y equipos, pero no iría ahí, sino tras el copyright. Por cierto tampoco se han actualizado desde 2008.

    En el fichero hay mezcla de saltos de línea de Windows (^M) y de unix. Eso da errores seguro.

    msgfmt me da 69 errores fatales, la mayoría de definición del mensaje duplicada. Pero parece que hay otro problema: los mensajes duplicados parecen remitir a líneas de código distintas (en el ejemplo que das, “#: exe/engine/appletidevice.py:541” y “#: exe/engine/appletidevice.py:351”). Es como si se hubieran cambiado las fuentes sin cambiar las referencias de los mensajes.

    Esto por lo que respecta a la parte técnica básica, sin entrar en correcciones más profundas. No se puede hacer un merge con este fichero hasta que no se corrijan estos errores. Y no controlo entrans, no sé si es fallo de entrans o de un uso inadecuado.

    Ahora el fichero de trunk.
    $ msgfmt –statistics -c -v -o /dev/null exe_gl.po
    exe_gl.po: 731 mensajes traducidos, 17 traducciones difusas, 93 mensajes sin traducir.

    No me da errores. No sé si los errores que señalas son producto de un despiste en el orden de los parámetros:
    “-o” manda la salida al fichero que indiques después (en este caso /dev/null). Tú has enviado la salido a -v ¿?

    Yo de ti trabajaría sobre el de trunk, y usaría el de entrans como consulta, pero no me pelearía con merge, vas a perder más tiempo arreglándolo que empezando de nuevo.

    Ánimo, Pablo, que es menos trabajo del que parece.

  • #1476

    pablonimo
    Member

    Hola Juan Rafael,

    En el adjunto el archivo, espero que vaya bien porque me he liado un poco con las fusiones y el maravilloso entrans con sus alegrías 😉

    actualmente el msgfmt –statistics -c -v -o /dev/null 20121106_2145_exe_gl.po me dice:
    20121106_2145_exe_gl.po: 833 mensajes traducidos, 8 mensajes sin traducir.

    pero no encuentro esos 8 mensajes sin traducir, como puedo identificarlos? me da miedo utilizar un programa por lo que lo he hecho “a pelo” con el gedit.

    saludos y gracias!”

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #1478

    jrfern
    Member

    Tendríamos que contactar con la gente de entrans para ver si los problemas son de la herramienta.

    Sobre cómo encontrar las cadenas sin traducir, una herramienta especializada sirve exactamente para eso. Por ejemplo en emacs con el modo PO, basta con teclear “u”. Te he hecho el trabajo, y apuntado las líneas (tras actualizar la cabecera de tu fichero – irá en adjunto): 3203, 3339, 3364, 3394, 3636, 3684, 3725 y 3746.

    Te envío el fichero modificado, a falta de las traducciones, claro. ¿Este es el Po de trunk, o el que hicisteis hace meses, corregido?

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #1480

    pablonimo
    Member

    Muchas gracias!!!! 😉

    Entonces fichero traducido totalmente…

    $ msgfmt –statistics -c -v -o /dev/null 20121106_2325_exe_gl.po
    20121106_2325_exe_gl.po: 841 mensajes traducidos.

    Sobre que archivo es? el archivo debiera ser algo así …

    $ msgmerge trunk_exe_gl.po abalar_exe_gl.po

    donde “abalar_exe_gl.po” es una traducción del gl_.po de la anterior versión, pero que no llegamos a enviaros.

    A ver… 🙂 Un saludo

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #1482

    jrfern
    Member

    Pues ya está tu traducción en el repositorio. Y la catalana, y la valenciana, y la castellana. ¡Sólo falta el euskera!

    Muchas gracias, Pablo, por el esfuerzo.

You must be logged in to reply to this topic.