Vendredi 28 Juillet 2017, 10:49     Connectés : 11      Membres : 10


Mot de passe oublié ?

Pas encore de compte ?

1 2 3

Outils de traduction Pour UnderRail !

REPONDRE S'ABONNER
kworld
Guerrier
#1
Comme je l'avais annoncé dans le topic de suggestions pour les futures traductions, je me suis intéressé à comment, techniquement ( je ne suis pas vraiment un littéraire ), traduire UnderRail.

Comme les fichiers de dialogues sont des fichiers binaires, un simple éditeur de texte ne suffit pas. Il faut :
- Soit travailler avec un éditeur hexadécimal et faire des modifications plutôt fastidieuses et plus ou moins complexes.
- Soit utiliser un outil dédié !

Le créateur du jeu n'ayant pas fourni ce genre d'outil, je me suis mis dans la tête d'en fournir un (bien sur un truc assez simpliste, mais fonctionnel).
Et comme je suis arrivé à une première version fonctionnelle de cet outil, je vous le propose en exclusivité sur ce topic !

Par contre je ne sais pas ( encore ??) comment éditer les fichiers .k qui contiennent les description des skills, des feats , et des objets. Et vu leur gueule ça risque de pas être facile !



Éditeur de dialogues pour UnderRail :

Cet "éditeur" permet d'éditer les textes contenus dans les fichiers udlg du jeu UnderRail, afin par exemple de le traduire.
Il est constitué de 2 petits programmes :

udlg_extractor : qui permet d'extraire les textes des fichiers udlg vers un fichier edlg* plus digeste et modifiable avec un simple éditeur de texte.

udlg_injector : qui permet de recréer un fichier udlg traduit a partir du fichier udlg original et du edlg correspondant !

ces deux programmes s'utilisent en ligne de commande de cette façon** :


Code:
udlg_extractor.exe fichier.udlg

=> fichier.udlg.edlg est créé.

on édite fichier.udlg.edlg avec notepad++ par exemple puis :


Code:
udlg_injector.exe fichier.udlg fichier.udlg.edlg

=> fichier.udlg_trd est créé.


fichier.udlg_trd est en fait la version traduite de fichier.udlg, il suffira de le renommer "fichier.udlg" et d'ecraser celui du jeu.


Maintenant je vais vous parler du format edlg :
dans notepad++ ça donne :


Les lignes commençants par un # sont des commentaires elles sont donc ignorées.

Le fichier s'organise comme suit :
- Une ligne comportant 4 nombres.

- Et une ligne contenant le texte en lui même !

Il y a 2 autres contraintes:
-Les textes doivent être uniquement en ASCII (sinon le jeu ne les reconnait pas) ! donc pas d'accents ! et on sélectionne ANSI comme encodage dans notepad++. Au final on édite le fichier en UTF-8 et le jeu supporte les accents sans soucis !
-Les fin de lignes doivent être au format CR LF . Sous windows c'est comme ça par défaut, et ça se règle ( et s'affiche) dans notepad++. Par conséquent un retour à la ligne , ou une ligne vide dans un texte du jeu correspondent à 2 caractères.


Sinon dans les textes en eux même :
-$(quelquechose), correspond à une variable, le nom du joueur par exemple, il ne faut donc pas le traduire !

-$(#texte masculin/texte féminin), permet de gérer le genre du personnage. Vous pouvez en rajouter même quand il n'en existe pas originellement.


Pour vous aider à tout repérer, j'ai mis à disposition dans le dossier extras un fichier à importer dans notepad++ pour ajouter la coloration syntaxique pour de nouveau format.



Pour le téléchargement, je vous donne le lien vers la page du projet GitLab dédié sur ma forge. Vous pourrez y télécharger les exécutable, le code source ( assez crade pour le moment, mais fonctionnel), le fichier de coloration pour notepad ++...


donc :

Télécharger l'éditeur de dialogues pour UnderRail .



EDIT: Bon après test, en fait le jeu supporte très bien les accents !!! ...En utf-8... mes précédents tests avaient crashés, mais mes fichiers avaient été abimé par mes essais successifs...
Nouveau soucis du coup (léger cependant), en utf-8 compter les caractères est un peu plus chiant (certains comptant double =/), donc soit je fais un éditeur graphique spartiate pour les fichiers edlg, soit je revois mon le parseur d'edlg dans l'injecteur pour qu'il gère tout seul les caractères sur deux octets.

EDIT 2:
J'ai mis à jour udlg_injector, pour lui ajouter un support basique de l'utf-8 (caractères sur 2 octets au maximum), ce qui est largement suffisant pour le français (et l'italien Vecna !). .J'affinerai quand même l'implémentation, parce que pour le moment c'est sale ça ne me plais pas !
Donc maintenant on édite en UTF-8 et on a les accents !
Il ne reste plus qu'à régler ce soucis avec les descriptions de skills, feats, items, ainsi qu'avec l'interface... Saletés de fichiers .k !!


*pour "extracted dlg" je ne suis pas allé chercher bien loin
** Dommage que la balise "code" ne s'affiche pas correctement !
VI VI VI the number of the beast !

Message édité pour la dernière fois le : 07/02/2017 à 21:46

Geralt
Seigneur
#2
Il l'a fait.

Du coup après ton edit, je viens de lire ton petit tuto. C'est bien expliqué. Et bordel GG tu gères le code kworld ! C'est un terrain sur lequel je ne me suis pas aventuré jusqu'à maintenant...
En plus t'as speedé. Bon rien à redire, tu auras ta prime à la fin du mois comme convenu.
« Un peuple prêt à sacrifier un peu de liberté pour un peu de sécurité ne mérite ni l'une ni l'autre, et finit par perdre les deux. » Benjamin Franklin

Message édité pour la dernière fois le : 12/01/2016 à 03:13

AbounI
Grand gobelin
#3
large 'n big up kworld
akae beka
Djefel
Chevalier
#4
J'ai rien compris, mais je m'incline bien bas
Let the boots do the talking
Gaek_Shao
Garde
#5
Vous êtes de grands malades. Chapeau.
I shiver when I remember The things that I have seen I know the light, I know the Night I have walked with things unseen I have been a king invincible I've been the poorest of the poor I've pulled the mighty from their thrones And laughed at Death's own door 'Cause I'm alive, I'm alive : Cirith Ungol
Shaam
Grand chevalier
#6
Belle initiative et merci !
strelokk
Guerrier
#7
J'ai rien compris, mais je m'incline bien bas


Vrai....
Tu sais, un système ne tient que tant que tout le monde y croit. Ce qu'ils redoutent le plus, c'est que les gens se mettent à réfléchir. Futu.re
targus
Noble
#8
J'ai testé ton outil... pour m'amuser. Par contre, il faut vraiment chercher le fichier edlg ! C:\utilisateurs\monordine\appdat\virtualstore\... etc etc
Beau travail !
AbounI
Grand gobelin
#9
Vous êtes de grands malades. Chapeau.

ouip, c'est notre Grand Kworld Malade à nous
akae beka

Message édité pour la dernière fois le : 12/01/2016 à 13:41

kworld
Guerrier
#10
Le edlg se met à côté du udlg ! Mais si tu lui file un udlg qui se trouve dans un répertoire protégé ( programme files par exemple) Microsoft peut faire chier avec son virtual store !

Le plus simple c'est de travailler en local dans un dossier,
Donc le exe et le udlg dans le même dossier, idéalement dans mes documents pour éviter les soucis liés au virtual store. ( pour ouvrir une console directement dans un répertoire donné tu maintiens MAJ puis clic droit, et dans le menu contextuel se rajouté , ouvrir une invite de commande ici )
VI VI VI the number of the beast !
Gaek_Shao
Garde
#11
J'avoue qu'il fallait la placer celle-ci, Abounl ........
I shiver when I remember The things that I have seen I know the light, I know the Night I have walked with things unseen I have been a king invincible I've been the poorest of the poor I've pulled the mighty from their thrones And laughed at Death's own door 'Cause I'm alive, I'm alive : Cirith Ungol
Djefel
Chevalier
#12
Excellent Abouni xD Ca restera ^^
Let the boots do the talking
all_zebest
Héros
#13
Je déplace ce fil de discussion dans la Section traduction.
Hawkeye
Villageois
#14
Salut,

Je suis très très très intéressé par ce projet.
S'il devait voir le jour je pense que j'y participerai autant que possible.

En revanche, vu l'ampleur de la tâche et la nécessite de travailler à plusieurs dessus je pense qu'il serait souhaitable de développer des outils qui soient un peu moins "bas-niveau". Et qui permettent éventuellement de travailler à plusieurs aussi.

Par exemple, à l'époque de la traduction de la démo de Mutant Rising on avait développé une page web en php avec des fonctions toutes bêtes qui venait piocher les contenu de chaque string pour les insérer dans une base de donnée. Ensuite à partir de la base de donnée on pouvait afficher chaque string à l'écran.

Il y avait donc une interface permettant de traduire les strings une par une directement sur le web. Et surtout une fois la trad validée, un fichier était automatiquement généré sur notre serveur et on pouvait le récupérer pour faire des tests in-game.

J'ai retrouvé une vieille présentation vidéo de cet outil :
https://www.youtube.com/watch?v=ipxSIAn1GUg#t=27m45s
Bon, la présentation est un peu à l'arrache, j'étais pas mal stressé ce jour là, mais le concept est toujours valable.

Du coup, il y a quelques petits trucs à programmer pour passer des fichiers .edlg à une version web et inversement pour passer de la version web à la version .udlg utilisable directement en jeu (en ajoutant le nombre de caractères automatiquement etc...).

Donc oui ça fait un peut de boulot au départ pour construire le bidule, mais une fois que c'est fait, ça peut accélérer énormément le travail des traducteurs et des relecteurs.

Sinon, ya aussi des outils collaboratifs tout faits comme ça :
https://translate.google.com/toolkit
Mais qui du coup ne permettront pas de générer les fichiers au bon format etc...

On reste en contact, je vais scruter ce topic avec attention.
Pour le moment j'effectue quelques tests avec tes outils pour voir si tout fonctionne bien.

Énorme merci à toi en tout cas c'est exactement ce qu'il nous manquait pour démarrer cette trad.

Message édité pour la dernière fois le : 13/01/2016 à 21:14

targus
Noble
#15
Il me semble (à confirmer) que les fichiers udlg ne contiennent que les dialogues.
Où se trouvent les fichiers des interfaces, compétences, items ? dans ces fichiers avec l'extension k ?
J'ai testé les outils de Kworld, et ils fonctionnent parfaitement et ils sont à la portée de n'importe quel traducteur.
Dommage que les fontes ne puissent pas être modifiées pour avoir les lettres accentuées.
kworld
Guerrier
#16
@ Targus oui tout semble se trouver dans ces fichiers k que je n'ai pas encore trouvé comment modifier. ( et je ne suis pas sur d'y arriver =/, mais comme le jeu est codé avec XNA, et que je n'ai jamais touché à ce framework avant, je continue de chercher, si je ne trouve pas il faudra se contenter d'un format manuel (pdf) pour cette partie...). De plus ils me semblent étonnamment petits, dans tout les cas je continue de chercher !

Pour les accents le problème n'est pas vraiment à chercher du coté des fontes mais du jeu en lui même, on est limité aux caractères ascii sinon le jeu "crash", mais il y a peut être moyen de faire une modification des fontes et procéder par remplacement "{" devenant "é" par exemple. Je devrai être en mesure d'extraire les fontes dans pas longtemps, donc : à voir. (Et bien sur j'essayerais de faire ça de manière transparente pour le traducteur qui taperait "é" dans le edlg (je ne suis pas sur niveau conjugaison là ^^))

@Hawkeye
Pour un outil collaboratif en ligne avec build automatique un "Simple" gitlab + runner suffirait. Les strings ne sont pas extraits automatiquement, mais chaque modification d'un edlg permettrait de générer automatiquement le fichier udlg correspondant.

Avec l'éditeur en ligne pas besoin de logiciel, ni même d'ordinateur. (Par contre c'est de l'utf-8 donc si je fais un remplacement de caractère c'est à prendre en compte! )

Et avec la notion de Branche on peut faire par exemple 3 niveaux de versions, traduit, relu, testé.


@Djefel @Abounl

Excellent Abouni xD Ca restera ^^


J'espère pas trop quand même !
VI VI VI the number of the beast !

Message édité pour la dernière fois le : 14/01/2016 à 11:15

strelokk
Guerrier
#17
Dites donc, kworld, targus, et hawkeye, vous allez industrialiser la trad amateur, excellente idée, y'a AoD après ^^
Tu sais, un système ne tient que tant que tout le monde y croit. Ce qu'ils redoutent le plus, c'est que les gens se mettent à réfléchir. Futu.re
kworld
Guerrier
#18
Dites donc, kworld, targus, et hawkeye, vous allez industrialiser la trad amateur, excellente idée, y'a AoD après ^^


J'ai déjà les outils pour Grimrock 2 ( et la révision du patch du 1er) qui s’éternise(nt), puis je zieuterai du coté de Serpents in the Stagland, je sais déja éditer les dialogues mais il vaut mieux attendre la sortie de l'extension gratuite( elle n'est pas sortie hein !? ^^ ). Mais j'aimerai beaucoup une traduction pour AoD !


Pour ces satanés fichiers .k (pour Knowledge), je vais tenter de grappiller des renseignement auprès du développeur, je n'ai rien à y perdre !

VI VI VI the number of the beast !
Vecna
Novice
#19
Wow kworld!! Tu es SUPER!
- I am the Ancient, I am the Land -
Hawkeye
Villageois
#20
Le problème des accents est quand même un sacré problème.
La trad va se retrouver d'assez mauvaise qualité si on ne trouve pas une solution à ça.

et +1 pour les textes de l'interface, c'est carrément prioritaire dans ce genre de projet.

Tu es en contact avec un des dev kworld ?
(J'ai essayé de contacter Styg récemment sans succès, il faudrait ptet essayer un autre dev ?).

kworld
Guerrier
#21
En procédant par remplacement dans les fontes pour les accents ca devrait le faire. On devra peut être sacrifier les majuscules accentuées par contre...

Quand aux developpeurs, je ne les ai pas encore contactés. Mais je ne vais pas tarder, il me faut des renseignements sur ces saletés de fichiers k !
VI VI VI the number of the beast !
ElRacal
Novice
#22
J'y capte que dalle à votre histoire mais j'ai cru lire qu'il y avait un souci de string? Perso, rien que d'en voir un, ça me rend tout soucieux, surtout les violets.

Mais si je peux donner un coup de main ou autre, je suis toujours là en cas de souci avec les strings.


@Hawkeye: Hey, salut vieille branche!
Vecna
Novice
#23
Modifier les polices de caractères pour le support des caractères accentués c'est pas facile.
Les fichiers sont des *.xnb.
Malheureusement il faut avoir intallé XNA Game Studio...
- I am the Ancient, I am the Land -
kworld
Guerrier
#24
Oui, mais XNA est gratuit ! Et il existe des outils pour faire l'extraction.
Et au pire si il n'est pas possible d'extraire le XNB. Il suffira de recréer un XNB à partir d'une police similaire.
Inutile de modifier les fontes au final ! le jeu supporte les accents sans aucun soucis !

Les fichiers .k sont bien plus problématiques !!
VI VI VI the number of the beast !

Message édité pour la dernière fois le : 16/01/2016 à 01:24

kworld
Guerrier
#25
Bon au final le problème des accents est résolu ! ( j'ai édité les premier post pour plus d'informations)

Il reste encore celui des descriptions et de l'interface... pour lequel j'attends une réponse des développeur.
VI VI VI the number of the beast !