Réalisation d'outils
Posté : mer. 02 mai 2018, 21:16
A la suite de le proposition d'aide de Doremus, j'ouvre cette discussion pour décrire des outils qui pourraient aider l'équipe. Je vais d'abord exposer mes propres idées. Mais n'hésitez surtout pas à proposer les vôtres.
J'avais d'abord identifié deux outils qui seraient pratiques pour l'utilisation des fichiers tra une fois traduits. Suite à la proposition de Sandman, j'ajoute un troisième outil d'un usage plus immédiat, en phase de traduction :
1/ Outil de récupération des noms de fichier son et d'élimination de doublons
Objectifs :
Fichier tra VO BG2EE :
extrait du dialog.tlk du répertoire en_US : on pourrait se limiter à la plage de numéro débutant à 74107
voir fichier dialogBG2EEv2.3.67.3-En.zip dans le répertoire Références de la dropbox
Description du format tra
Pour une première introduction, je suggère de lire l'article présentant les fichiers mis à disposition des traducteurs.
Le format est le suivant :
En VO, les deux cas possibles dans le fichier tra sont :
@numero = ~texte~
@numero = ~texte~ [SON]
La présence de caractères entres crochets après le texte entre tildes indique au jeu qu'il existe un fichier de doublage sonore de la réplique (dialogue, retour pour une action du joueur sur le personnage) ou de l'exclamation (coup reçu, par exemple). Ils indiquent le nom du fichier son qui contient le doublage. Le jeu ajoutera l'extension .WAV et ira typiquement chercher le fichier en question dans un fichier .bif (équivalent à un fichier zip avec un format propriétaire)
En VF, nous aurons potentiellement les cas suivants :
@numero = ~texte~
@numero = ~texte~ [SON]
@numero = ~texte masculin~ ~texte féminin~
@numero = ~texte masculin~ [SON] ~texte féminin~ [SON]
Nota : même s'il serait possible d'avoir un différence de son entre masculin et féminin dans le fichier tra, il n'est pas certain que le jeu le gère et de toute façon, il n'existe aucun jeu de fichiers de ce type pour le français. Nous nous contenterons donc d'utiliser le même fichier son pour les deux déclinaisons dans tous les cas.
Mise en garde concernant le codage (autrement dit spécifications informelles du format tra) :
- les textes utilisent généralement le tilde (~) comme séparateur à la place du classique guillemet
- l'utilisation du guillemet (") à la place du tilde n'est pas totalement à exclure
- dans un cas particulier, le fichier tra des textes anglais va utiliser un groupe de 5 tildes comme séparateur, en raison d'un texte qui comporte à la fois le tilde et le guillemet
- dans les fichiers tra, un texte (entre tildes) peut s'étendre sur plusieurs lignes (objet, sort, ...)
Récupération de la référence de son
En pratique les fichiers d'analyse à partir desquels nous travaillons n'ont pas inclus la référence de son. De sorte qu'elle manque au fichier tra obtenu après traduction. Si le fichier tra était utilisé en l'état dans le mod bg2eetrans, l'implantation dans le fichier dialog.tlk du texte français perdrait la référence du son associé, de sorte que la réplique concernée deviendrait muette.
Exemple : tout premier texte de 2025-Rasaad-V2.tra, dossier "Rasaad SoA\Traduction" de la dropbox ou le forum
@77529 = ~Nous souhaitons seulement savoir si tu es réellement déchu !~
En réalité le texte en VO comporte un doublage son pour ce texte :
@77529 = ~We only seek to know if you have truly fallen away!~ [OH77529]
Attention à ne pas confondre avec le cas suivant :
@numero = ~[CONTEXTE] texte~ [SON]
Parfois il se trouve un texte entre crochet à l'intérieur des tildes, qui décrit le contexte d'utilisation. En général ces indications entre crochets sont présentes lorsqu'il y a aussi un fichier son associé
Mise en commentaire des doublons
Exemple concret, toujours au début du même fichier
Les fichiers d'analyse, et donc les fichiers tra qui en sont tirés, répètent la réponse choisie par le joueur à une précédente réplique avant de présenter la nouvelle réplique du personnage ainsi que les nouveaux choix de réponse offert au joueur. Dans le cas ci-dessus, il s'agit de la ligne @77534. Comme elle est présente deux fois dans le fichier, l'outil de vérification de fichier, TraChecker (mentionné ici) va signaler un doublon.
En vérité, si les deux textes sont vraiment identiques, cela ne poserait pas de problème dans le processus de création du fichier d'installation pour le mod de traduction (objet du deuxième message sur la même page). Néanmoins cela serait pénalisant en terme de temps de création et en temps d'installation du mod. Et cela représentera un risque potentiel pour la conversion de fichier tra en csv mentionné au tout début (vis-à-vis de l'import dans l'outil de Beamdog).
L'objectif est donc de mettre en commentaire les apparitions d'un texte déjà présent avant dans le fichier. La syntaxe est la même qu'en langage C. En principe ce genre de doublon ne devrait intervenir que pour des répliques de dialogues, qui ne devraient en principe pas contenir de retour à la ligne. Dans ces conditions, l'ajout de // au début des lignes @numéro en doublon devrait suffire. Si on veut éviter tout risque, il faudrait encadrer l'ensemble de la "ligne" @numéro par /* et */.
Vérification du contenu des numéros en doublon
Il s'agit ici de vérifier que lorsqu'il y a des doublons, les textes sont bien identiques. Dans le cas contraire, il s'agit simplement d'afficher une alerte dans la console.
Forme de l'outil
L'idée serait un outil fonctionnant via la ligne de commande afin de pouvoir le lancer en batch pour traiter autant de fichiers tra que nécessaire.
2/ Conversion de fichier tra en fichiers csv importables dans l'outil de traduction de Beamdog
A suivre...
3/ Vérification de mise à jour d'un texte par rapport au plus récent dialog.tra
Les analyses qui ont permis d'identifier les textes à traduire dans leurs contextes ont été pour la plupart réalisées à partir des textes d'une version préliminaire de BG2EE. Le nombre 2025 et 2031 figurant dans le nom des fichiers d'analyse au format rtf font référence à un nombre incrémental de version, sachant que la version 2030 correspond à la première version officielle et 2032 au premier patch. Nous avons donc à faire à des textes pour la plupart non finalisés.
Par conséquent, vu la propension de Beamdog à raffiner les textes pour modifier la ponctuation, passer les nombres des chiffres arabes à la forme écrite et aux modifications plus ou moins significatives, il y a de grandes chances que de nombreux textes aient été modifiés depuis l'analyse.
Il serait donc utile de disposer d'un outil permettant de détecter facilement les textes qui ont changé entre l'analyse et la toute dernière version du jeu. Dans les deux cas, il s'agira de s'appuyer sur les fichiers au format tra.
En terme de sortie, l'outil devra indiquer les textes présentant des écarts et recopier pour ceux-là les moyens d'analyser la situation. Afin de pouvoir utiliser des outils d'affichage graphique de différence, je propose pour cela de créer deux fichiers au format tra :
L'objectif est d'éviter d'avoir à ouvrir les deux fichiers et à chercher les numéros pour pouvoir comparer les textes considérés par l'outil comme modifiés.
Pour que des outils de diff graphique tel que kdiff3 ou meld puissent être utilisés pour les comparaisons, il faudra également s'assurer de ne pas introduire de différence sur les informations ajoutées (en particulier les informations pour le repérage).
Exemple (proposition) :
Premier fichier
Second fichier
Comme indiqué dans cet article, certains textes peuvent être répétés. Compte-tenu de la consigne de ne traduire que le premier, il suffira de vérifier le texte lorsqu'il apparaît pour la première fois seulement.
Par ailleurs les fichiers tra à exploiter contiennent les textes anglais, de sorte qu'ils ne comportent que le texte "masculin". Il n'est pas nécessaire de se préoccuper des références à des fichiers de voix (texte entre crochets) vis-à-vis d'éventuels ajouts, suppression ou modification : le premier outil offrira le moyen de mettre à jour le fichier tra traduit avec les références utilisées dans la version la plus récente du jeu.
Forme de l'outil
Idéalement : outil autonome (pas besoin d'environnement à installer pour s'en servir), utilisable sous Windows
A minima : outil fonctionnel avec instructions d'utilisation et installation (si nécessaire)
Utilisation
utilisable en ligne de commande pour permettre le traitement en lot de plusieurs fichiers d'analyse (mais une interface graphique de lancement est envisageable, en complément)
PS : je reprendrai prochainement ce message pour en améliorer la mise en page.
J'avais d'abord identifié deux outils qui seraient pratiques pour l'utilisation des fichiers tra une fois traduits. Suite à la proposition de Sandman, j'ajoute un troisième outil d'un usage plus immédiat, en phase de traduction :
- un outil pour corriger un fichier tra sur un aspect particulier et pour compléter une information manquante dans les fichiers d'analyse
- un outil permettant de convertir un fichier tra sous forme de deux fichiers csv destinés à mettre à jour la traduction dans l'outil en ligne de Beamdog
- un outil permettant de vérifier l'existence de mise à jour d'un texte par rapport au plus récent dialog.tra
1/ Outil de récupération des noms de fichier son et d'élimination de doublons
Objectifs :
- insertion des références de fichier son manquantes dans les fichiers traduits
- mise en commentaire des textes en doublon
- [vérification que ces textes en doublon sont bien identiques en contenu]
Code : Tout sélectionner
Fichier tra traduit ----> -------------------------
| Outil de récupération | ----> Fichier tra traduit complété
Fichier tra VO BG2EE ---> -------------------------
extrait du dialog.tlk du répertoire en_US : on pourrait se limiter à la plage de numéro débutant à 74107
voir fichier dialogBG2EEv2.3.67.3-En.zip dans le répertoire Références de la dropbox
Description du format tra
Pour une première introduction, je suggère de lire l'article présentant les fichiers mis à disposition des traducteurs.
Le format est le suivant :
En VO, les deux cas possibles dans le fichier tra sont :
@numero = ~texte~
@numero = ~texte~ [SON]
La présence de caractères entres crochets après le texte entre tildes indique au jeu qu'il existe un fichier de doublage sonore de la réplique (dialogue, retour pour une action du joueur sur le personnage) ou de l'exclamation (coup reçu, par exemple). Ils indiquent le nom du fichier son qui contient le doublage. Le jeu ajoutera l'extension .WAV et ira typiquement chercher le fichier en question dans un fichier .bif (équivalent à un fichier zip avec un format propriétaire)
En VF, nous aurons potentiellement les cas suivants :
@numero = ~texte~
@numero = ~texte~ [SON]
@numero = ~texte masculin~ ~texte féminin~
@numero = ~texte masculin~ [SON] ~texte féminin~ [SON]
Nota : même s'il serait possible d'avoir un différence de son entre masculin et féminin dans le fichier tra, il n'est pas certain que le jeu le gère et de toute façon, il n'existe aucun jeu de fichiers de ce type pour le français. Nous nous contenterons donc d'utiliser le même fichier son pour les deux déclinaisons dans tous les cas.
Mise en garde concernant le codage (autrement dit spécifications informelles du format tra) :
- les textes utilisent généralement le tilde (~) comme séparateur à la place du classique guillemet
- l'utilisation du guillemet (") à la place du tilde n'est pas totalement à exclure
- dans un cas particulier, le fichier tra des textes anglais va utiliser un groupe de 5 tildes comme séparateur, en raison d'un texte qui comporte à la fois le tilde et le guillemet
- dans les fichiers tra, un texte (entre tildes) peut s'étendre sur plusieurs lignes (objet, sort, ...)
Récupération de la référence de son
En pratique les fichiers d'analyse à partir desquels nous travaillons n'ont pas inclus la référence de son. De sorte qu'elle manque au fichier tra obtenu après traduction. Si le fichier tra était utilisé en l'état dans le mod bg2eetrans, l'implantation dans le fichier dialog.tlk du texte français perdrait la référence du son associé, de sorte que la réplique concernée deviendrait muette.
Exemple : tout premier texte de 2025-Rasaad-V2.tra, dossier "Rasaad SoA\Traduction" de la dropbox ou le forum
@77529 = ~Nous souhaitons seulement savoir si tu es réellement déchu !~
En réalité le texte en VO comporte un doublage son pour ce texte :
@77529 = ~We only seek to know if you have truly fallen away!~ [OH77529]
Attention à ne pas confondre avec le cas suivant :
@numero = ~[CONTEXTE] texte~ [SON]
Parfois il se trouve un texte entre crochet à l'intérieur des tildes, qui décrit le contexte d'utilisation. En général ces indications entre crochets sont présentes lorsqu'il y a aussi un fichier son associé
Mise en commentaire des doublons
Exemple concret, toujours au début du même fichier
Code : Tout sélectionner
// Talking to the Sun Soul Monk and Treya
@77533 = ~Ah, ma tête...~
@77534 = ~Que s'est-il passé ici ?~
@77535 = ~Vous allez bien ?~
@77536 = ~Vous avez beaucoup de chance d'être en vie, moine.~
// If answer @77534:
@77534 = ~Que s'est-il passé ici ?~
@77537 = ~Une trahison, tout simplement, voilà ce qui s'est passé ici.~
... d'autres réponses possibles
En vérité, si les deux textes sont vraiment identiques, cela ne poserait pas de problème dans le processus de création du fichier d'installation pour le mod de traduction (objet du deuxième message sur la même page). Néanmoins cela serait pénalisant en terme de temps de création et en temps d'installation du mod. Et cela représentera un risque potentiel pour la conversion de fichier tra en csv mentionné au tout début (vis-à-vis de l'import dans l'outil de Beamdog).
L'objectif est donc de mettre en commentaire les apparitions d'un texte déjà présent avant dans le fichier. La syntaxe est la même qu'en langage C. En principe ce genre de doublon ne devrait intervenir que pour des répliques de dialogues, qui ne devraient en principe pas contenir de retour à la ligne. Dans ces conditions, l'ajout de // au début des lignes @numéro en doublon devrait suffire. Si on veut éviter tout risque, il faudrait encadrer l'ensemble de la "ligne" @numéro par /* et */.
Vérification du contenu des numéros en doublon
Il s'agit ici de vérifier que lorsqu'il y a des doublons, les textes sont bien identiques. Dans le cas contraire, il s'agit simplement d'afficher une alerte dans la console.
Forme de l'outil
L'idée serait un outil fonctionnant via la ligne de commande afin de pouvoir le lancer en batch pour traiter autant de fichiers tra que nécessaire.
2/ Conversion de fichier tra en fichiers csv importables dans l'outil de traduction de Beamdog
A suivre...
3/ Vérification de mise à jour d'un texte par rapport au plus récent dialog.tra
Les analyses qui ont permis d'identifier les textes à traduire dans leurs contextes ont été pour la plupart réalisées à partir des textes d'une version préliminaire de BG2EE. Le nombre 2025 et 2031 figurant dans le nom des fichiers d'analyse au format rtf font référence à un nombre incrémental de version, sachant que la version 2030 correspond à la première version officielle et 2032 au premier patch. Nous avons donc à faire à des textes pour la plupart non finalisés.
Par conséquent, vu la propension de Beamdog à raffiner les textes pour modifier la ponctuation, passer les nombres des chiffres arabes à la forme écrite et aux modifications plus ou moins significatives, il y a de grandes chances que de nombreux textes aient été modifiés depuis l'analyse.
Il serait donc utile de disposer d'un outil permettant de détecter facilement les textes qui ont changé entre l'analyse et la toute dernière version du jeu. Dans les deux cas, il s'agira de s'appuyer sur les fichiers au format tra.
En terme de sortie, l'outil devra indiquer les textes présentant des écarts et recopier pour ceux-là les moyens d'analyser la situation. Afin de pouvoir utiliser des outils d'affichage graphique de différence, je propose pour cela de créer deux fichiers au format tra :
- dans le premier, le texte présent dans le fichier tra d'analyse
- dans le second, le texte correspondant dans la toute dernière version du jeu
L'objectif est d'éviter d'avoir à ouvrir les deux fichiers et à chercher les numéros pour pouvoir comparer les textes considérés par l'outil comme modifiés.
Pour que des outils de diff graphique tel que kdiff3 ou meld puissent être utilisés pour les comparaisons, il faudra également s'assurer de ne pas introduire de différence sur les informations ajoutées (en particulier les informations pour le repérage).
Exemple (proposition) :
Premier fichier
Code : Tout sélectionner
// Ligne 234 du fichier XXX_analyse.tra
@97520 = ~texte du fichier d'analyse~
// Ligne 684 du fichier XXX_analyse.tra
@86245 = ~autre texte du fichier d'analyse, situé après dans le fichier mais pas forcément en terme de numéro~
Code : Tout sélectionner
// Ligne 234 du fichier XXX_analyse.tra <- ce texte doit être strictement identique à celui du premier fichier
@97520 = ~texte modifié dans la dernière version~
// Ligne 684 du fichier XXX_analyse.tra
@86245 = ~autre texte modifié dans la dernière version~
Par ailleurs les fichiers tra à exploiter contiennent les textes anglais, de sorte qu'ils ne comportent que le texte "masculin". Il n'est pas nécessaire de se préoccuper des références à des fichiers de voix (texte entre crochets) vis-à-vis d'éventuels ajouts, suppression ou modification : le premier outil offrira le moyen de mettre à jour le fichier tra traduit avec les références utilisées dans la version la plus récente du jeu.
Forme de l'outil
Idéalement : outil autonome (pas besoin d'environnement à installer pour s'en servir), utilisable sous Windows
A minima : outil fonctionnel avec instructions d'utilisation et installation (si nécessaire)
Utilisation
utilisable en ligne de commande pour permettre le traitement en lot de plusieurs fichiers d'analyse (mais une interface graphique de lancement est envisageable, en complément)
PS : je reprendrai prochainement ce message pour en améliorer la mise en page.