Traduire

Il existe plusieurs fichiers « po » pour différentes langues afin de rendre Cinelerra-GG plus utilisable pour les pays non-anglophones, avec différents niveaux d’exhaustivité ou d’exactitude. Avec le développement continu, de nouvelles phrases sont ajoutées et doivent être traduites. Les informations ci-dessous sont fournies afin de faciliter au maximum le travail de traduction de Cinelerra-GG. Cependant, il y a plusieurs étapes à franchir et la tâche est quelque peu difficile. Parce que cette aide est très appréciée par de nombreux utilisateurs, si vous envoyez un courriel à cin[@]lists.lists.cinelerra-gg[dot]org, un nouveau cin.po mis à jour avec vos traductions en cours peut être généré pour vous.. Ensuite, tout ce que vous auriez à faire est d’exécuter poedit sur lui pour compléter toutes les traductions manquantes puis de notifier la liste de diffusion de l’achèvement et de l’emplacement du nouveau fichier.

Pour une manière plus difficile, mais toujours gérable, voici une liste complète d’instructions pour créer vos traductions. Un programme, xlat.C, aide à fournir plusieurs variantes de fichiers texte qui peuvent être utilisés afin de permettre à quiconque de faire des traductions significatives. Pour créer un nouveau fichier cin.po, procédez comme suit après avoir accédé au répertoire de cinelerra :

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

Ce fichier ne contiendra que des mots/phrases en anglais. Ensuite, pour utiliser le programme xlat.C, compiler le tout d’abord avec « c++ xlat.C ». Vous pouvez voir l’aide d’utilisation ici :

# ./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

Ce programme possède 6 commandes où la commande désirée est le premier paramètre à a.out. :

1) « csv » = fichier comma separated value; pour recréer un po à partir d’un fichier csv.
2) « po » = convertir po en données csv ; par exemple, ce dont vous avez besoin pour convertir ru.po en ru.csv.

Vous pouvez même ouvrir le fichier *.csv résultant dans ooffice et mettre à jour les valeurs de remplacement des clés->
(champs séparés par « , » uniquement et vérifiez les champs cités comme texte lors de l’importation). Ces résultats peuvent
être « Enregistré sous » un fichier csv, puis utilisé par xlat.C pour reformuler un « po ».

3) « dups » = liste uniquement les éléments clé/valeur pour lesquels la clé=valeur ou la valeur= » » ».
4) « nodups » = liste uniquement les éléments clé/valeur où clé!=valeur et valeur!= » ».
5) « key » = liste l’ensemble de clé de cin.po .
6) « xlat » = traduction par superposition. C’est l’utilisation la plus importante et elle est décrite ci-dessous.

Les paramètres de ligne de commande xlat spécifient un nouveau modèle cin.po, généralement créé avec xlat.sh, et une liste de fichiers de clé/valeur qui sont utilisés pour construire un mappage pour la traduction souhaitée. Les fichiers de mappage sont ajoutés au mappage dans l’ordre dans lequel ils apparaissent sur la ligne de commande, et toute clé existante est remplacée par la définition la plus récente ; ainsi, typiquement, la dernière donnée clé/valeur est la dernière dans les paramètres de commande. Une fois le mappage construit, le premier paramètre, le nouveau modèle po, est scanné et les clés qu’il contient sont utilisées pour trouver le dernier mappage dans les fichiers clé/valeur. La nouvelle valeur remplace la valeur existante dans le modèle. Par exemple, pour écraser une nouvelle map dans un po existant :

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 première exécution préserve le mappage existant de xx.po, la deuxième crée de nouveaux mappages à partir de new.po, et la troisième fusionne les mappages originaux et nouveaux pour créer un po avec un nouveau xx.po inclu/écrasant. Ce nouveau fichier.po peut maintenant être édité pour inclure les traductions avec votre éditeur préféré ou poedit.

Puisque certains mots et abréviations peuvent donner lieu à des traductions ambiguës, il peut être nécessaire d’utiliser C_ et D_ dans le code du programme pour représenter les exceptions contextuelles et définitionnelles aux termes _ et N_ habituels. Vous verrez ce qui suit :

C_(« msgstr ») est traduit en D_(« qual#msgstr ») par xlat.sh,
et invoque gettext avec msgid = « qual#msgstr ».

Lorsqu’aucune traduction ‘po’ n’est fournie, le qual# est supprimé et seul le texte ‘msgstr’ par défaut est affiché. Si une traduction ‘po’ est définie pour la locale courante, alors la traduction msgid = ‘qual#msgstr’ est utilisée pour accéder au msgstr traduit.

Le MSGQUAL par défaut est le nom de base du fichier source C. Pour le fichier src_file.C, le MSGQUAL par défaut est :

#define MSGQUAL « src_file »

Il est utilisé pour définir le qualificatif nécessaire à la transformation :

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

La source xlat.sh’d résultante est analysée par xgettext pour créer le fichier cin.po initial. En d’autres termes :
_(s) fait la traduction internationale normale de texte comme toujours –
La ligne msgid est : msgid « s »

C_(s) le fait apparaître comme si vous utilisiez D_(« src_file# » s) –
La ligne msgid est : msgid « src_file#s »
S’il ne traduit pas, le msgtext par défaut est « s », pas « src_file#s »

D_(qual#s) essaie de regarder _(qual#s) –
La ligne msgid est : msgid « qual#s »,
S’il ne traduit pas, le msgtext par défaut est « s », pas « qual#s »

Résumé :
utilisez _(s) comme d’habitude dans presque tous les cas
utilisez C_(s) si le fichier source a un sens spécifique pour s
utilisez D_(qual#s) si le fichier source a plusieurs sens pour s