• The forum has been updated. For an explanation of some of the changes, head over here.

BL Traduire Bannerlord, le futur outil de traduction

Currently viewing this thread:

Status
Not open for further replies.

Daneel53

Sergeant Knight
WBVC
Le programme s'appellera Translate Bannerlord. :xf-wink:

En d'autres langues que l'anglais ? Non. De toute façon les mods étant en anglais, la connaissance de l'anglais est impérative pour traduire les mods, donc l'outil dans cette langue ira très bien, un peu comme j'avais fait les DFTools pour Daggerfall directement en anglais.

Bon, là je suis sur la partie facile, c'est-à-dire la saisie dans les ressources en-US de tous les libellés et bulles d'aide des différents écrans. C'est facile parce que l'éditeur de Visual Studio permet de faire ça très simplement. Ensuite il faudra aussi faire une version bilingue de tous les messages et questions pour les utilisateurs affichés dans les MessageBoxs, et là je n'ai pas encore regardé comment faire mais ça ne devrais pas être trop compliqué non plus. Chiant, sûrement, car je suppose qu'il va falloir passer par des strings intermédiaires dans les deux langues, là où actuellement les messages sont directement en français dans les appels à MessageBox.Show, mais pas compliqué.

Restera enfin à trouver la bonne façon de faire le changement de langue pour l'utilisateur. Hier j'ai bien testé quelques méthodes glânées de-ci de-là sur Internet mais je n'ai pas trouvé la façon satisfaisante, celle qui fait changer de langue tout le programme avec rafraîchissement complet de l'interface à la volée. Il y avait toujours un truc qui foirait. Alors je laisse ça de côté pour le moment et j'écrirai un petit programme d'essai indépendant pour voir comment faire ça comme je le désire, puis je mettrai la technique en place dans Traduire. Pour l'instant, puisque je suis en mode développement, j'ai juste une ligne de code qui s'exécute au tout début du programme et le fait passer en anglais si elle est active. Donc suivant qu'elle soit valide ou en commentaires, le programme se lance en anglais forcé ou en français par défaut et ça me suffit pour pouvoir tester le programme en anglais.

Par contre, quand tout cela sera terminé, je cauchemarde à l'idée qu'il faudra faire le manuel utilisateur en anglais... C'est d'ailleurs pour ça que je n'ai pas fait passer Traduire M&B en anglais, la seule idée de devoir refaire mes deux documents utilisateur en anglais me file des boutons. Non pas parce que je ne saurais pas faire, mais parce que ce serait très long : traduire des dizaines de pages d'explications et refaire toutes les captures avec le programme en anglais... Brrr ! D'ailleurs je pense que le manuel utilisateur de Traduire Bannerlord ne sera écrit qu'en anglais, pas question de faire ce travail deux fois ! 😒
 

Zombie Warrior

Sergeant Knight
Mais... mon jeu de mots ne fonctionne plus!

Des fois, la solution la plus simple est de faire deux versions du même programme; une en français et l'autre en anglais. C'est un peu bâtard comme façon de faire, mais ça marche. A y penser vite, je passerais par la liste des contrôles pour tout changer en boucle, mais mes réflexions s'arrête-là... les programmes bilingues sont plus complexes que les programmes unilingues et je ne suis pas habitué de faire ça. La dernière fois que j'ai fait quelque chose dans le genre, c'était du code broche à foin. Bonne chance!

Donc suivant qu'elle soit valide ou en commentaires, le programme se lance en anglais forcé ou en français par défaut et ça me suffit pour pouvoir tester le programme en anglais.
Au lieu d'une ligne de code commentée/décommentée pour déterminer la langue, il pourrait être intéressant d'avoir un fichier config à la place, même si c'est juste pour déterminer la langue d'affichage.

Par contre, quand tout cela sera terminé, je cauchemarde à l'idée qu'il faudra faire le manuel utilisateur en anglais... C'est d'ailleurs pour ça que je n'ai pas fait passer Traduire M&B en anglais, la seule idée de devoir refaire mes deux documents utilisateur en anglais me file des boutons. Non pas parce que je ne saurais pas faire, mais parce que ce serait très long : traduire des dizaines de pages d'explications et refaire toutes les captures avec le programme en anglais... Brrr ! D'ailleurs je pense que le manuel utilisateur de Traduire Bannerlord ne sera écrit qu'en anglais, pas question de faire ce travail deux fois !
Lorsque tu seras rendu-là, si t'as besoin d'un coup de pouce et si jamais on est encore en mesure d'urgences au Québec, j'aurai sans doute le temps de t'aider avec ça. J'ai tendance à écrire avec l'orthographe canadienne, puisque c'est qu'on nous a appris dans les cours d'anglais ici, mais je crois être capable de faire attention à ça. Si tu penses que je peux t'aider, tu me feras signe le temps venu.
 

Daneel53

Sergeant Knight
WBVC
Deux versions du même programme ? Non, sûrement pas, pas envie de devoir passer de l'un à l'autre à chaque changement de code ! Et puis là l'interface est déjà entièrement bilingue, il n'y a plus qu'à en faire autant avec les messages à l'utilisateur et ce sera fini pour la saisie des deux langues, j'ai commencé à traiter cela cet après-midi.

A terme la langue choisie sera bien dans un paramètre, dans le déjà existant Traduire.ini avec les autres options si possible, j'ai juste besoin de faire un petit programme d'essai très simple pour m'assurer de le lire au bon endroit et de le répercuter de la bonne façon. Tout cela sera terminé dans quelques jours.

Quand au manuel, ma décision est prise, je le rédigerai directement en anglais. De toute façon il y a plein de choses dans le manuel de Traduire M&B qui ne tiennent plus la route pour Bannerlord, donc il sera à refaire entièrement. J'ai de toute façon plusieurs mois devant moi avant que ce programme ne soit utile à d'autres. :xf-smile:
 

Zombie Warrior

Sergeant Knight
Super! Il me semble que t'as pensé à tout. Et maintenant...
2016-09-01-0817-the-divine-comedy-page-15.png

Bon travail :razz:
 

Daneel53

Sergeant Knight
WBVC
Première cible atteinte : grâce à un petit programme exemple, je sais maintenant stocker la langue utilisée de façon permanente, la prendre en compte au démarrage, changer la langue avec deux radio boutons dans le panneau des options et relancer le programme avec la nouvelle langue quand on le change.

Reste à traiter le cas des textes affichés dans les messages à l'utilisateur. Il faut stocker les textes dans deux fichiers ressources, un pour le français et un pour l'anglais. J'ai essayé d'utiliser les mêmes que ceux que Visual Studio utilise pour les labels des écrans, mais ce n'est pas fiable car ces fichiers sont régénérés à chaque modif de l'interface et les variables ajoutées sont écrasées. Je pense que je vais devoir utiliser des fichiers de ressources spécifiques.

Zombie Warrior, en tant que Canadien, tu utilises ton Windows en quelle langue ? Anglais US, français canadien, autre ?

Si tu n'es pas en fr-FR, cela m'intéresserait, quand il sera fini, de te faire parvenir mon programme exemple pour voir comment il se comporte dans un Windows non franco-français. Si tu en es d'accord, bien entendu ! :xf-wink:

A suivre...
 

Zombie Warrior

Sergeant Knight
Super! ça avance vite! je peux prendre une à deux semaines avant d'atteindre un objectif dans un projet de prog personel :sad:

Ça dépend... Mon ordinateur principal est un Linux Mint 19.3 en français canadien. J'ai mono d'installé, donc en théorie je pourrais peut-être rouler ton programme si c'est du .Net Core, mais c'est pas super bon en général pour les programmes qui utilisent windows forms. Quand je ne suis pas à la maison, j'utilise un windows 10 en canadien français pour travailler, mais je pourrais pas tester bientôt... (évidement)

Mon vieux windows, que j'utilise uniquement que pour développer des petits projets personnels spécifiquement pour windows ou pour jouer à mount&blade, est tellement vieux qu'il n'est pas capable de faire en haut de .Net Framework 4.5. Il est en anglais canadien mais avec une configuration de clavier canadien-français. Je pense que t'es mieux d'avoir une machine virtuelle et de faire des tests toi-même puisqu'il bogue souvent. Mais si tu le juge quand même pertinent, c'est sur que je vais faire des tests pour toi.
 
Last edited:

Daneel53

Sergeant Knight
WBVC
OK, pas grave, merci quand même.

De toute façon je pense que j'ai enfin tout compris sur les fichiers de ressources et j'ai atteint ma deuxième cible : je sais afficher les textes des MessagesBox dans les deux langues grâce à deux fichiers de ressources aux doux noms de TraduireBoxStrings.resx et TraduireBoxStrings.en-US.resx. Le premier contient le français et est lu par défaut quand on n'est pas en en-US, le deuxième contient l'anglais comme son nom l'indique et est lu quand on sélectionne l'anglais dans le panneau des options.

Reste à mettre tous les textes de toutes les boites de dialogue dans les deux fichiers de ressources, et comme il y a quand même beaucoup de boites de dialogue dans ce programme, il y en a pour quelques heures. Mais puisque nous sommes confinés à la maison pour plusieurs semaines (je doute qu'on en sorte avant mi-avril...), ce n'est pas le temps qui manque ! 😒
 

Daneel53

Sergeant Knight
WBVC
Rien n'est jamais simple, avec le .Net. Mais il doit en être de même avec les autres environnements de développement.

Là je viens de me rendre compte que le programme fonctionne très bien quand on le teste dans Visual Studio, mais quand je déporte le programme dans un autre répertoire pour simuler une distribution, les textes anglais ne sont pas là et c'est le français qui est affiché. Alors certes le programme sait très bien s'il est sensé être en français ou en anglais, ce qu'attestent les deux radio boutons qui permettent de choisir et indiquer la langue courante, mais dans tous les cas seul le français est affiché. J'en déduis que les ressources anglaises ne sont pas trouvées et que ça retombe par défaut sur les ressources en français. Et même en mettant le fichier de ressource XXX.en-US à côté du programme, ça ne change rien. Et d'ailleurs comment trouve-t-il les textes français des boites de dialogue alors que celles-ci sont exclusivement dans le fichier de ressources par défaut qui n'est pas là non plus ? Les textes français seraient donc dans le .exe et pas les textes anglais ? Curieux...

Je cherche désespérément dans la doc du .Net, section Resourcemanager, mais pas moyen de comprendre ce qu'il se passe. 😟
 

Zombie Warrior

Sergeant Knight
sans doute que je radote ce que tu sais déjà mais as-tu pensé à bien mettre toutes les ressources qui ne sont pas compilées à « copier si plus récent »?
 
Last edited:

Daneel53

Sergeant Knight
WBVC
Voilà, j'ai trouvé, mais tout à fait par hasard : en fait, à la compilation du programme, les ressources sont balancées dans une dll ! J'ai découvert qu'il y a sous le dossier Debug qui contient le résultat de mes générations dans Visual Studio un dossier de nom "en-US" qui contient une dll, et si on met ce dossier à côté du binaire exécutable, le programme se met à afficher l'anglais comme prévu. Quant au français, qui est pour moi la langue par défaut, il faut croire qu'il est bien compilé directement dans le .exe.

Il faudra donc que je distribue ce dossier en-US en plus du binaire.

Aaaah ! Ce problème résolu, je peux aller tondre la pelouse, activité de jardinerie du jour pour moi qui ai la chance de ne pas habiter en appartement. :xf-smile:
 

Daneel53

Sergeant Knight
WBVC
Bien, la pelouse tondue et le tondeur lavé, j'ai repris la traduction de Translate Bannerlord. Tous les dialogues de l'écran principal sont traduits, restent ceux de l'écran de gestion des bibliothèques et ceux de l'écran d'initialisation. Je continuerai ça dans la journée.

Alors, prendre le texte français, créer une variable dédiée dans le fichier de ressources français, coller le texte français, aller faire la même chose dans le fichier de ressources en-US et traduire, revenir dans le code et remplacer le texte d'origine par l'appel au gestionnaire de ressources pour la nouvelle variable, texte suivant... :rolleyes:

Je serai content quand ça sera fini.
 

Daneel53

Sergeant Knight
WBVC
Bien, voilà, TraduireBannerlord est devenu entièrement bilingue. 😎

A partir de maintenant je ne l'utiliserai plus qu'en anglais afin de vérifier que ça se passe bien dans cette langue. Je vais pouvoir reprendre la traduction des nouveautés des derniers fichiers à traduire (ceux de la 0.8.6), même s'il est désormais impossible d'en voir le résultat dans la Beta.:confused:
 

Vifur

Recruit
Bravo pour ce boulot ! :smile:
Vous pensez qu'il sera disponible quand et où ?
Membre du peuple allergique à la domination anglophone.
 

hallavar

Recruit
Bonsoir,

J'ai créé une méga bibliothèque de traduction de 33000 lignes en compilant les 17 bibliothèques de Warband en une seule vu que pour l'instant il n'y a dans Bannerlord qu'un seul gros fichier à traduire qui regroupe tout.

Puis j'ai réussi à écrire une partie du code nécessaire au traitement de ce fichier par la bib (le fichier généré est encore au format csv de Warband, mais je modifierai ça plus tard).

Résultat ? La bibliothèque permet de traduire directement 4600 lignes sur les 16220 que compte le fichier de textes de Bannerlord. Voilà 4600 lignes que nous n'aurons pas à traiter à la main ! :grin:

Et donc, en passant, 30% des textes de Bannerlord de ce fichier sont repris à l'identique de Warband. Je suppose que cela ne vous surprend guère. Et encore, il faudrait ajouter à cela les textes repris qui n'ont changé qu'à cause des nouvelles syntaxes des variables et expressions et non à cause du contenu intrinsèque, mais là je ne pourrai pas les comptabiliser car aucun processus automatique ne pourrait les reconnaitre. Ces lignes là, il faudra se les taper à la main... sauf si TaleWorlds se fend d'une VF officielle.

Ceci dit, je viens de jeter un coup d’œil très rapide à la vidéo de gameplay "sandbox" de 26 minutes qu'ils ont mis en ligne récemment et je confirme que la totalité des textes de Bannerlord ne figure pas dans le fichier string_translation_data. Si je regarde par exemple ce qui est écrit dans l'extrait de l’encyclopédie à 04:11, la description de Belgir, baron des Vlandiens, ne se trouve pas dans le fichier. Donc soit ce fichier est incomplet, par exemple parce que la beta ne concerne que le mode multi, soit il existe d'autres fichiers de textes ailleurs, mais comme je ne dispose pas de la distribution de la beta, je ne peux pas chercher.


Petite question : tu traduis à la main ???
Ces textes vont sans doutes être changé dans le futur, faudra que tu repasse tout à la main à ce moment là ??
Il y a pas des algorithme de traduction en langage naturel, IA tout ca ...
 

Zombie Warrior

Sergeant Knight
Petite question : tu traduis à la main ???
Ces textes vont sans doutes être changé dans le futur, faudra que tu repasse tout à la main à ce moment là ??
Il y a pas des algorithme de traduction en langage naturel, IA tout ca ...
Non. Traduire Bannerlord est le nom d'un outil de traduction automatique. Les textes traduits par ce programme sont basés sur des traductions de Warband et ses mods. Lis au moins la première page au lieu de poser ces genres de questions facile à répondre! En plus, tu as le poste qui explique le fonctionnement en citation, ça fait dur!
 

hallavar

Recruit
Non. Traduire Bannerlord est le nom d'un outil de traduction automatique. Les textes traduits par ce programme sont basés sur des traductions de Warband et ses mods. Lis au moins la première page au lieu de poser ces genres de questions facile à répondre! En plus, tu as le poste qui explique le fonctionnement en citation, ça fait dur!

la question ne portait pas sur les 4000 lignes déjà traduites de Warband mais sur les 12000 lignes qui restaient à traduire.
Ma question était d’ailleurs plus générale sur les méthodes utilisées par les traducteurs de jeux (officieux qui plus est dans le cas présent)... Comment traduisent-ils ??
J’espère qu'il se farcissent pas les dialogues en entier à la main.

Pour la partie centrée sur Bannerlord, la question de la pertinence d'une trad à ce stade de l'accès anticipé reste ouverte, surtout si cette dernière est faite à la main...
 

Daneel53

Sergeant Knight
WBVC
Bonjour,

Je me rend compte que, dans l'urgence, j'ai diffusé le 1er avril le lien d'une première version de Traduire Bannerlord dans un Discord communautaire de la VF et dans un sujet de du forum de JV.com, mais pas ici.

Comme il n'y a aucune raison de ne pas le faire, le voici : Traduire Bannerlord

Plutôt que rien, j'ai glissé dans l'archive le manuel utilisateur de Traduire M&B. Certes, tous les passages spécifiques de la structure des fichiers à traduire dans Warband ne sont plus applicables, mais le fonctionnement basique du programme qui permet d'éditer et modifier les fichiers à traduire de Bannerlord reste applicable puisque l'interface utilisateur est la même.

La prochaine étape va consister à une grosse mise à jour de la partie relative à la génération automatique des fichiers traduits à partir des bibliothèques, pour réussir de passer de la structure à plat de Warband (16 fichiers dans le même dossier) à la structure de Bannerlord où les 63 fichiers à traduire sont répartis dans quatre dossiers différents et avec des fichiers de noms identiques dans des dossiers différents. Le tout de façon assez souple car je suis bien persuadé que cette structure changera de temps en temps durant l'année que durera l'Early Access. :xf-wink:

Il me faudra aussi développer une routine de génération de bibliothèque Bannerlord à partir des fichiers VA et VF d'une version pour pouvoir rebalancer les traductions dans les fichiers d'une version suivante qui aura changé, sinon le travail devra à chaque fois être fait à la main. Vaste programme, mais ça me plait !

A plus ! :xf-smile:
 
Status
Not open for further replies.
Top Bottom