Aller au contenu
← Toutes les nouveautés
Dialogues et localisationPar l’équipe Nodary

Dialogues à embranchements et tables de traduction, dans vos documents.

Écrivez un dialogue à embranchements comme un script, jouez-le et exportez-le pour Yarn Spinner. Tenez les textes du jeu dans une table de traduction, avec un état par traduction, des contrôles de longueur et de variables, et des fichiers pour votre moteur.

La table de traduction de Saltmarrow, un projet d’exemple fictif : clés, contexte et longueurs maximales à côté des colonnes anglais, français, allemand, japonais et portugais du Brésil, une barre de couleur pour l’état de chaque traduction, et la progression de chaque langue au-dessus de la grille, avec trois textes à corriger en allemand et en portugais du Brésil
Dans Nodary · Données de démonstration

Les textes d’un jeu passent par deux paires de mains : le narrative designer qui écrit la conversation, et l’équipe de localisation qui la livre dans chaque langue. Les deux travaillent désormais dans les documents de conception, à côté des personnages et des systèmes dont viennent ces textes.

Un dialogue à embranchements, écrit comme un script

Le bloc Dialogue réunit des répliques dites par des personnages. Une réplique peut proposer des choix, et chaque choix saute à la réplique qu’il désigne par un identifiant court : réordonner ne casse aucun saut. Passez de Script à Jouer, qui parcourt la conversation choix après choix comme le joueur, puis à Graphe, qui dessine chaque saut. Nodary signale un choix qui vise une réplique disparue, une réplique qu’aucun chemin n’atteint et une réplique qui ne dit rien. Partez du modèle Quest Dialogue, ou de la courte conversation d’exemple qu’un dialogue vide propose.

Vers Yarn Spinner

Quand la conversation tient, Fichier Yarn télécharge un script Yarn Spinner 2 : un nœud par réplique, les choix en options, les sauts entre nœuds et la première réplique marquée start. Importez-le avec Yarn Spinner dans Unity, Godot ou Unreal. Un agent connecté par MCP lance les mêmes vérifications avec check_dialogue et reçoit le même script. Les cinématiques gardent leur place dans le bloc Scénario, qui lit le Fountain.

Un état pour chaque traduction

Transformez n’importe quel tableur en table de traduction, ou tapez / et choisissez String table. Nodary lit les rôles des colonnes dans vos en-têtes, comme Key, Context, Max length et English, ou keys, en, fr de Godot, et ajoute une langue en un clic. Chaque traduction est manquante, en brouillon, relue, validée, ou en source modifiée dès que son texte source change, sans que rien ne soit réécrit. Pendant la frappe, Nodary signale un texte plus long que sa limite en caractères vus par le joueur, une variable perdue ou ajoutée, un texte resté dans la langue source et des espaces en trop. Sélectionnez une traduction : un panneau montre sa source, son contexte, sa longueur et les variables à garder.

Des fichiers pour les moteurs et les traducteurs

Exportez un CSV avec toutes les langues pour Godot et Unity, du JSON pour i18next, un .po gettext avec la clé en contexte pour Unreal et Godot, et du XLIFF 1.2 pour les outils de traduction, avec l’état, la limite et le contexte de chaque texte. Une langue pseudo-localisée montre les textes tronqués dans votre interface avant toute traduction. Les traducteurs renvoient du XLIFF, du .po, du JSON ou du CSV : les textes sont retrouvés par clé, un aperçu précède tout changement, et une traduction vide n’efface jamais celle de la table. Un build peut aussi récupérer la table à une adresse fixe, une langue ou toutes, et seulement les textes validés si vous le demandez.

À vous de jouer

  1. Ouvrez l’exemple de table de traduction.
  2. Dans Afficher, choisissez Problèmes : la salutation allemande a perdu son {name}, et le bouton français Load game dépasse ses 16 caractères.
  3. Sélectionnez la salutation allemande pour lire sa source, son contexte et la variable à garder.
  4. Ouvrez Exporter et choisissez XLIFF 1.2 pour le français.
Essayer l’exemple

Il n’y a ni mémoire de traduction ni traduction automatique intégrée ; un agent connecté par MCP peut écrire des traductions, qui arrivent en brouillon. Les pluriels vivent en messages ICU dans une cellule, et les entrées plurielles d’un .po sont ignorées à l’import. Les conditions et variables des dialogues ne sont pas modélisées : une condition écrite dans un choix, comme [Carrying a memory crystal], se lit mais n’est jamais évaluée. Yarn Spinner est un export seulement, un dialogue compte au plus 300 répliques de 8 choix chacune, et les répliques ne rejoignent pas la table de traduction d’elles-mêmes.

La suite de votre exploration