Shadowrun Trilogy (Traduction)

From Watchiki
Jump to navigation Jump to search

Pourquoi le projet est abandonné ?[edit | edit source]

Pour plusieurs raisons :

  • Le jeu n'est pas tant connu que ça et les gens qui y ont joué semblent avoir fait le deuil d'une éventuelle traduction de Shadowrun Dragonfall et Hong Kong ;
  • Paradox Interactive, qui possède les droits des jeux, semblent vouloir uniquement capitaliser dessus et n'en a visiblement rien à faire. Preuve en est que depuis qu'ils ont obtenu les droits sur ces jeux, leur seule action aura été de faire un portage dégueulasse sur Switch. Ajoutons à cela que Paradox Interactive a aussi participé aux licenciements massifs dans le jeu vidéo ;
  • La traduction du jeu est bien plus complexe qu'il n'y paraît au premier abord (voir Traduction incomplète) ;
  • Cela demande beaucoup de travail pour arriver à tout traduire, mais je manque de temps et de motivation, surtout en étant seul.

Présentation du projet[edit | edit source]

Les jeux Shadowrun Returns, Dragonfall et Hong Kong sont des Tactical-RPG adaptant la célèbre licence de jeu de rôle Shadowrun en jeu vidéo. Si le premier opus a été traduit en plusieurs langues, ses successeurs n'ont malheureusement jamais été traduits.

Entre temps, Harebrained Schemes, le studio à l'origine de ces jeux, a été racheté par Paradox Interactive. La trilogie ressort bientôt, notamment sur Switch, mais aucune traduction n'est malheureusement prévue.

Côté fans, quelques projets de traduction ont vu le jour mais ont assez rapidement été abandonnés. Il faut dire que le jeu est très verbeux et que la charge de travail est assez conséquente. En français, un même projet de traduction a été entamé par Tyr62, puis repris par Okaye et pepin-de-landen, avant d'être finalement délaissé. Côté espagnol, une traduction a pu être complétée (basiquement à partir de Google Traduction) : Shadowrun Dragonfall Director's Cut Traducción Automática

À partir de ces projets de traduction et de quelques essais, j'ai pu déterminer quelle est la marche à suivre pour effectuer une traduction correcte.

Avant propos[edit | edit source]

J'ai initialement travaillé sur la version GOG des jeux pour faire ce travail, une version visiblement plus capricieuse que celle de Steam. Par rigueur, j'ai voulu comparer les deux versions et il se trouve qu'elles sont assez différentes sur certains fichiers, notamment des fichiers présents dans la version Steam mais absents de la version GOG (pour Dragonfall) ou l'inverse (pour Hong Kong). On peut aussi noter des différences dans la casse de certains noms de dossiers ou de fichiers (en particulier dans les sous-dossiers de xxx_Data/StreamingAssets/standalone/).

Un autre point notable est que Dragonfall version Steam gère visiblement assez bien le passage de l'interface en français, contrairement à la version GOG.

Certaines différences peuvent simplement s'expliquer par les différences d'API entre Steam et GOG, mais pour d'autres, je ne parviens tout simplement pas à l'expliquer.

Récupérer le script[edit | edit source]

C'est assez simple l'air de rien. Chaque jeu Shadowrun est livré avec un éditeur dédié qui permet de réaliser ses propres campagnes de jeux. Cet éditeur dispose notamment d'une fonctionnalité intéressante : générer un fichier qui contient tous les dialogues d'une campagne dédiée.

Pour cela, il faut ouvrir avec l'éditeur le fichier project.cpack.bytes correspondant à la campagne que l'on veut traduire. Selon le jeu, la campagne principale se trouve dans :

  • $(Dossier de Shadowrun Returns)/Shadowrun_Data/StreamingAssets/ContentPacks/deadmanswitch/ pour Shadowrun Returns ;
  • $(Dossier de Shadowrun Returns)/Shadowrun_Data/StreamingAssets/ContentPacks/berlin_campaign/ pour Shadowrun: Dragonfall (en tant que DLC de Shadowrun Returns) ;
  • $(Dossier de Shadowrun Dragonfall)/Dragonfall_Data/StreamingAssets/ContentPacks/DragonfallExtended/ pour Shadowrun: Dragonfall Director's Cut ;
  • et $(Dossier de Shadowrun Hong Kong)/SRHK_Data/StreamingAssets/ContentPacks/HongKong/ pour Shadowrun: Hong Kong Extended Edition

Une fois le chargement terminé, il faut aller dans Tools et sélectionner Extract Content Pack Localization. Cette opération va générer un fichier Strings.pot dans un dossier resources/, trouvable dans le même dossier que le fichier project.cpack.bytes.

Traduire le script[edit | edit source]

Une fois que l'on a notre script Strings.pot il faut le traduire. Pour cela, il faut utiliser l'outil Poedit, un logiciel libre utilisé pour la traduction. Lorsque l'on ouvre le fichier Strings.pot avec Poedit, celui-ci charge les différents textes contenus dans le fichier. Pour effectuer une traduction, il faut en créer une avec le bouton Créer une nouvelle traduction et sélectionner la langue dans laquelle on veut traduire le texte (en ce qui me concerne, je choisis "français (France)"). Une fois la traduction créée, il reste à traduire tous les textes dans la langue que l'on veut.

Je n'entrerai pas ici dans les détails de la traduction ou de l'utilisation de Poedit. Cela nécessiterait une page dédiée.

Déployer la traduction[edit | edit source]

Une fois la traduction terminée, Poedit permet de la compiler en un fichier .mo qui devra être placé parmi les fichiers du jeu. Je ne détaillerai pas ici toute l'arborescence d'un pack de campagne, je vais juste indiquer que pour chaque campagne il faut placer le fichier .mo dans $(Dossier du jeu)/xxx_Data/StreamingAssets/ContentPacks/$(Nom du Content Pack)/data/loc/fr/ (dans le cas d'une traduction française). Si les dossiers loc/fr/ n'existent pas (ce qui est généralement le cas), il faudra les créer et placer votre fichier .mo dedans.

Pour le nom du fichier, il faut qu'il corresponde au nom du Content Pack (sur Windows, ça ne semble pas poser de problème, mais sur Linux, oui). Attention, ce n'est pas systématiquement le nom du dossier (même si c'est souvent le cas). Pour connaître le nom précis du pack, il y a une petite astuce : allez dans $(Dossier du jeu)/xxx_Data/StreamingAssets/ContentPacks/$(Nom du Content Pack)/data/misc/ et cherchez un fichier avec l'extension .pflib.bytes. Généralement, il n'y en a qu'un et il porte le vrai nom du Content Pack. S'il y en a plusieurs, choisissez celui qui semble correspondre le plus au nom de la campagne. Si ce n'est pas celui-là, vous réessaierez avec les autres.

Pour vous faire gagner du temps, voici un tableau des correspondances pour les principaux Content Packs de chaque jeu :

Content Packs principaux de Shadowrun Returns
Intitulé Dossier Nom de code Tags
Core Shadowrun Returns functionality shadowrun_core Accessoires, Portraits, Données uniquement
The Dead Man's Switch deadmanswitch Seattle, Accessoires, Portraits, Histoire, Nouveau personnage
Tilesets et environnements de la zone de Seattle seattle Accessoires, Portraits, Données uniquement
Content Packs principaux de Shadowrun: Dragonfall - Director's Cut
Intitulé Dossier Nom de code Tags
Core Shadowrun Returns functionality shadowrun_core Accessoires, Portraits, Données uniquement
The Dead Man's Switch deadmanswitch Seattle, Accessoires, Portraits, Histoire, Nouveau personnage
Tilesets et environnements de la zone de Seattle seattle Accessoires, Portraits, Données uniquement
Berlin Area Environments and Tilesets berlin Seattle, Accessoires, Portraits, Données uniquement
Shadowrun: Dragonfall - Director's Cut DragonfallExtended berlin_campaign Seattle, DeadMansSwitch, Berlin, Accessoires, Portraits, Histoire, Nouveau personnage
Content Packs de Shadowrun: Hong Kong Extended Edition
Intitulé Dossier Nom de code Tags
Core Shadowrun Returns functionality shadowrun_core Accessoires, Portraits, Données uniquement
Shadowrun: Hong Kong HongKong hongkong Accessoires, Portraits, Histoire, Nouveau personnage
Shadows of Hong Kong (bonus) hk_coda HongKong, Accessoires, Portraits, Histoire, Données uniquement, Continue Story

Pour que le jeu fonctionne sans accroc, il faut non seulement fournir une traduction pour la campagne mais aussi pour le pack bonus qui va avec (berlin pour Dragonfall et hk_coda pour hong Kong) sans quoi le jeu aura un comportement étrange, notamment à la création d'une nouvelle partie.

Configurer le jeu[edit | edit source]

Vous aurez remarqué que Dragonfall et Hong Kong ne permettent pas de configurer la langue depuis le jeu. Il faut forcer le changement de langue manuellement, en passant par le registre Windows ou le fichier des préférences sous Linux.

Pour Windows, il suffit d'exécuter regedit et de modifier la variable Settings.Language_h2828946908 pour lui donner la valeur FR. Pour trouver cette variable, il faut aller dans "HKEY_CURRENT_USER\Software\Harebrained Schemes\<nom du jeu>" (SRHK pour Hong Kong).

Pour Linux, il faut aller chercher le fichier prefs qui se situe dans le dossier "$HOME/.config/unity3d/Harebrained Schemes/<nom du jeu>/". Dans ce fichier, il faut trouver la variable Settings.Language et remplacer le terme None par FR dans le cas de Dragonfall. Pour Hong Kong cependant, il semblerait qu'il faille convertir la variable en base64, ce qui équivaut à RlI= pour FR.

Note : étrangement, l'outil base64 intégré à Linux me donne RlIK tandis que Dcode donne bien RlI= comme résultat. C'est d'ailleurs ce dernier qui est bien pris en compte par le jeu.

Traduction incomplète[edit | edit source]

Si le changement de langue traduit automatiquement l'interface de Hong Kong en français, ce n'est visiblement pas le cas pour Dragonfall. En effet, il semblerait que ces variables soient codées en dur dans certains fichier du jeu (notamment dans le fichier xxx_Data/ressources.assets) et en comparant les deux versions de ce fichier, il semblerait que toute la zone censée traduire l'interface manque dans la version de Dragonfall. À voir s'il est possible de réinsérer ces textes dans le fichier pour traduire l'interface.

Note : le paragraphe précédent ne concerne a priori que la version GOG. La version Steam ne semble pas souffrir de ce problème.

Un autre souci rencontré lors de la traduction de Hong Kong, c'est qu'il semblerait que certains textes soient manquants (l'exemple le plus flagrant étant l'écran de chargement lors du chapitre "SINLESS"). On peut retrouver ces textes en dur dans certains fichiers de scène et je ne comprends pas pourquoi ces textes ne sont pas extraits avec le reste ni comment faire pour les traduire sans devoir passer par l'éditeur du jeu (ce qui compliquerait davantage le travail de traduction). Même problème pour Dragonfall. Une investigation plus poussée a dévoilé que dans le script .po ces textes sont simplement remplacés par des variables dédiées. Variables qui sont initialisées en dur dans les fichiers de scène... Ce qui ramène au problème de devoir traduire ces éléments directement via l'éditeur plutôt que dynamiquement avec un script de traduction.