Bonjour,
Suite à la sortie de la Beta pour quelques Steamers, j'ai pu me faire envoyer un fichier sensé contenir dans le futur des traductions des textes de Bannerlord. Je dis dans le futur car bien que le fichier soit sensé contenir de l'allemand, il ne contient en fait que de l'anglais, nous y reviendrons. Il s'agit du fichier string_translation_data_de.xml qui se trouve dans le dossier Mount & Blade II Bannerlord - Beta\Modules\Native\ModuleData\Languages à côté de ses deux copains japonais et turc.
Oui, il possède l'extension .xml et non plus .csv. On le savait déjà, exit les fichiers formatés à la sauce spécifique TaleWorlds, place aux fichiers en XML qui semble-t-il seront légion dans le futur Module System. Ceci va donc changer fondamentalement notre méthode de traduction aujourd'hui bien huilée. Mais voyons d'abord à quoi ressemble ce nouveau format. Plutôt que de vous mettre un simple extrait du fichier constitué aujourd'hui de 16232 lignes (!), j'ai préféré vous faire un raccourci avec quelques extraits choisis pour illustrer les propos qui vont suivre.
Nota : Je ne vais pas faire ici un cours de XML. IL suffit de savoir qu'en XML :
Voyons maintenant la structure générale du contenu. Là où auparavant les fichiers .csv n'avaient que des données utiles de la première à la dernière ligne, on trouve ici des lignes d'introduction et d'encadrement du contenu utile, XML oblige :
dlga_award_fief_to_vassal:award_fief_to_vassal_defer|I wish to defer the appointment of a lord, until I take the counsel of my subjects
<string id="conversations.base.Conversations.conversation.text.4" text="GERI wish to defer the appointment of a lord, until I take the counsel of my subjects" />
Dans Warband nous avions Label|Texte.
Dans Bannerlord nous avons <string id=Label text=Texte />
La façon de procéder pour traduire sera donc a priori simple : on ne touche toujours pas au label et on se contente de traduire ce qui se trouve derrière text= (en laissant en place le /> final bien entendu).
Suite à la sortie de la Beta pour quelques Steamers, j'ai pu me faire envoyer un fichier sensé contenir dans le futur des traductions des textes de Bannerlord. Je dis dans le futur car bien que le fichier soit sensé contenir de l'allemand, il ne contient en fait que de l'anglais, nous y reviendrons. Il s'agit du fichier string_translation_data_de.xml qui se trouve dans le dossier Mount & Blade II Bannerlord - Beta\Modules\Native\ModuleData\Languages à côté de ses deux copains japonais et turc.
Oui, il possède l'extension .xml et non plus .csv. On le savait déjà, exit les fichiers formatés à la sauce spécifique TaleWorlds, place aux fichiers en XML qui semble-t-il seront légion dans le futur Module System. Ceci va donc changer fondamentalement notre méthode de traduction aujourd'hui bien huilée. Mais voyons d'abord à quoi ressemble ce nouveau format. Plutôt que de vous mettre un simple extrait du fichier constitué aujourd'hui de 16232 lignes (!), j'ai préféré vous faire un raccourci avec quelques extraits choisis pour illustrer les propos qui vont suivre.
Nota : Je ne vais pas faire ici un cours de XML. IL suffit de savoir qu'en XML :
- toutes les informations sont "taggées",
- c'est-à-dire sont encadrées de deux expression de type <MonPaquet> et </MonPaquet> pour marquer le début et la fin d'une suite d'informations,
- commencent par <MonInfo et se terminent par /> pour l'information en question,
- chaque information peut contenir plusieurs variables élémentaires indiquées par un truc du style "Variable= ".
<?xml version="1.0" encoding="utf-8"?>
<base xmlnssi="http://www.w3.org/2001/XMLSchema-instance" xmlnssd="http://www.w3.org/2001/XMLSchema" type="string">
<tags>
<tag language="Deutsch" />
</tags>
<strings>
<string id="crafting_pieces.CraftingPieces.CraftingPiece.name.empire_blade_1" text="GERPointed Imperial Blade" />
<string id="lord_conversations_66" text="GER{SURRENDER_DEMAND_STRING}" />
<string id="lord_conversations_67" text="GERSo, then. What is it?" />
<string id="raid_enemy_village_quest_behavior_17" text="GERRaid the enemy village in in {GIVEN_DAYS} {?GIVEN_DAYS > 1}days{?}day{\?} and then return to me with the good news." />
<string id="raid_enemy_village_quest_behavior_18" text="GERMy {?PLAYER.GENDER}Lady{?}Lord{\?} I am afraid I cannot do that." />
<string id="villager_campaign_behavior_5" text="GERWe have {PRODUCTS}. We can let you have them for {TOTAL_PRICE}{GOLD_ICON}." />
<string id="villager_campaign_behavior_6" text="GERAll right. Here is {TOTAL_PRICE}{GOLD_ICON}." />
<string id="game_menus.base.GameMenus.game_menu.default_text.menu_requested_castle_granted_to_player_husband" text="GERYou receive a message from your liege, {TOWN_NAME}.^^ {?KING.GENDER}She{?}He{\?} has decided to grant {TOWN_NAME} and {VILLAGES} to your husband, {HUSBAND.LINK}." />
<string id="bandits_campaign_behavior_24" text="GERThat's enough talking for now. Make your choice.[if:idle_angry][rb:trivial][ib:aggressive]" />
<string id="module_strings.base.strings.string.text.str_you_speak_of_claims_and_legalities_yet_to_others_you_talk_of_bringing_peace_by_force" text="GERYou speak of claims and legalities, yet to others you talk of bringing peace by force" />
</strings>
</base>
Voyons maintenant la structure générale du contenu. Là où auparavant les fichiers .csv n'avaient que des données utiles de la première à la dernière ligne, on trouve ici des lignes d'introduction et d'encadrement du contenu utile, XML oblige :
- Une ligne de version du XML et de type d'encodage que l'on trouve dans la plupart des fichiers XML.
- Une rubrique <base> qui va contenir tout ce qui va suivre jusqu'à la dernière ligne </base>.
- Une rubrique <tags> qui permet de donner la langue des textes du fichier.
- Et enfin une rubrique <strings> qui contient une longue suite d'informations <string> dont chacune contient un texte à traduire.
dlga_award_fief_to_vassal:award_fief_to_vassal_defer|I wish to defer the appointment of a lord, until I take the counsel of my subjects
<string id="conversations.base.Conversations.conversation.text.4" text="GERI wish to defer the appointment of a lord, until I take the counsel of my subjects" />
Dans Warband nous avions Label|Texte.
Dans Bannerlord nous avons <string id=Label text=Texte />
La façon de procéder pour traduire sera donc a priori simple : on ne touche toujours pas au label et on se contente de traduire ce qui se trouve derrière text= (en laissant en place le /> final bien entendu).