Traducir

Hay varios archivos «po» para varios idiomas para hacer Cinelerra-GG más utilizable para países no ingleses, con diferentes niveles de integridad o corrección. Con el desarrollo en curso, se añaden nuevas frases y es necesario traducirlas. La siguiente información se proporciona para hacer que el trabajo de proporcionar traducciones de idiomas sea lo más fácil posible para Cinelerra-GG. Sin embargo, hay varios pasos involucrados y la tarea es algo difícil. Debido a que esta ayuda es muy apreciada por varios usuarios, si envía un correo electrónico a cin[@]lists.cinelerra-gg[punto]org, se puede generar un nuevo cin.po actualizado con sus traducciones de idioma actuales ya en se puede generar para usted. Entonces todo lo que tendría que hacer es ejecutar poedit en él para completar las traducciones que faltan y notificar a la lista de correo de la finalización y la ubicación del nuevo archivo.

Para una ruta más difícil, pero aún manejable, aquí hay una lista completa de instrucciones para crear sus traducciones de idiomas. Un programa, xlat. C, ayuda a proporcionar diversas variaciones de archivos de texto que se pueden utilizar con el fin de permitir a cualquier persona para ayudar a hacer traducciones significativas. Para crear un nuevo archivo cin.po, haga lo siguiente después de pasar al directorio de cinelerra:

./po/xlat.sh > /tmp/cin.po

Este archivo solo tendrá palabras/frases en inglés. A continuación, para usar el xlat. Programa C, primero compilarlo con «c++ xlat. C». Puede ver la ayuda de uso aquí:

# ./a.out
list csv ./a.out csv < data.csv > data.po
list po ./a.out po < data.po > data.csv
list po ./a.out dups < data.po
list po ./a.out nodups < data.po
get strings ./a.out key < xgettext.po
gen xlation ./a.out xlat xgettext.po xlat.csv
gen xlation ./a.out xlat – text,xlat … < xgettext.po

Este programa tiene 6 comandos donde el comando deseado es el primer parámetro a a.out.:

1) «csv» – archivo de valores separados por comas; para volver a crear una po a partir de un archivo csv.
2) «po» – convertir po a datos csv; por ejemplo, lo que necesita para convertir ru.po a ru.csv.

Incluso puede abrir el archivo *.csv resultante en>ooffice y actualizar los reemplazos de clave- valor
(campos separados por «,» solamente y comprobar los campos citados como texto durante la importación). Estos resultados pueden
ser «Guardado como» un archivo csv, y luego utilizado por xlat. C para reformular un «po».

3) «dups» = listar sólo los elementos clave/valor donde la clave=valor o el valor=»»
4) «nodups» = listar sólo los elementos clave / valor donde clave!=valor y valor!=»».
5) «key» = list cin.po key set.
6) «xlat» = traducción de superposición. Este es el uso más importante y se describe a continuación.

Los parámetros de línea de comandos xlat especifican una nueva plantilla cin.po, normalmente creada con xlat.sh, y una lista de archivos clave/valor que se utilizan para crear una asignación para la traducción deseada. Los archivos de asignación se agregan a la asignación en el orden en que aparecen en la línea de comandos y cualquier clave existente se reemplaza por la definición más reciente; por lo que normalmente los datos de clave/valor más recientes son los últimos en los parámetros del comando. Una vez creada la asignación, se analiza el primer parámetro, la nueva plantilla po, y las claves que contiene se utilizan para encontrar la asignación más reciente en los archivos clave/valor. El nuevo valor reemplaza el valor existente en la plantilla. Por ejemplo, para superponer un nuevo mapa en una po existente:

c++ xlat.C
./a.out po < xx.po > /tmp/xx.csv
./a.out po < new.po > /tnp/new.csv
./a.out xlat xx.po /tmp/xx.csv /tmp/new.csv > /tmp/new.po

La primera ejecución conserva la asignación existente de xx.po, la segunda crea nuevas asignaciones a partir de new.po y la tercera combina las asignaciones originales y nuevas para crear un po con el nuevo archivo que incluye/reemplaza xx.po. Este archivo new.po ahora se puede editar para incluir las traducciones con su editor favorito o poedit.

Dado que algunas palabras y abreviaturas pueden dar lugar a traducciones de idiomas ambiguas, el uso de C_ y D_ en el código del programa para representar excepciones contextuales y de definición a la habitual _ y N_ puede ser necesario. Verá lo siguiente:

C_(«msgstr») is translated to D_(«qual#msgstr») by xlat.sh,
e invoca gettext con msgid = «qual#msgstr».

Cuando no se proporciona ninguna traducción ‘po’, se elimina el qual#, y solo se muestra el texto ‘msgstr’ predeterminado. Si se define una traducción ‘po’ para la configuración regional actual, se utiliza el msgid traducido a = ‘qual#msgstr’ para acceder al msgstr traducido.

El MSGQUAL predeterminado es el nombre base del archivo fuente de C. Para el archivo src_file.C, el MSGQUAL por defecto es:

#define MSGQUAL «src_file»

Se utiliza para definir el calificador necesario para transformar:

C_(«str») to D_(«src_file#str»)

El valor de fuente xlat.sh’d resultante es escaneado por xgettext para crear el cin.po inicial. En otras palabras:
_(s) hace la traducción de texto internacional normal como siempre –
La línea msgid es: msgid «s»

C_(s) hace que parezca que usó D_ («src_file#» s) –
La línea msgid es: msgid «src_file#s»
Si no se traduce, el msgtext predeterminado es «s», no «src_file#s»

D_ (qual#s) intenta buscar _(qual#s) –
Esta línea msgid es: msgid «qual#s»,
Si no se traduce, el msgtext predeterminado es «s», no «qual#s»

Resumen:
utilizar _(s) como de costumbre en casi todos los casos
utilizar C_(s) si este archivo de origen tiene un significado especializado para s
utilizar D_(qual#s) si este archivo de origen tiene varios significados para s