Désolé si je remonte un sujet pas très récent, mais je pense que ça va en intéresser plus d’un.
En travaillant sur la nouvelle extension, je me suis dit que c’était assez facile d’alterner les langues avec les réponses personnalisables d’Inform 7 6L02. Voici un code qui fonctionne, même s’il ne traduit pas tous les messages (je n’allais pas écrire les 402 réponses pour chaque langue juste pour un exemple, tout de même ).
[code]« Bilingue » by Natrium729 (in French)
When play begins, now the story viewpoint is second person plural.
Part 1 - Initialisation
[Les fonctions pour changer de langue.]
To switch to English:
now the language of play is the English language;
now the standard report waiting rule response (A) is « Time [adapt the verb pass from the third person singular]. ».
[Et la même chose pour les 401 autres réponses, à tirer des Standard Rules.]
To switch to French:
now the language of play is the French language;
now the standard report waiting rule response (A) is « Le temps [adapt the verb passes from the third person singular]… ».
[Et la même chose pour les 401 autres réponses, à tirer des l’extension française.]
[La compréhension des commandes en fonction de la langue]
Understand the command « wait » as something new.
Understand the command « attendre » as something new.
Understand « wait » as waiting when the language of play is the English Language.
Understand « attendre » as waiting when the language of play is the French Language.
[Et pareil pour absolument toutes les commandes possibles et imaginables.]
[Règles pour traduire les noms des objets.]
An object has a text called English printed name. The English printed name is usually « [printed name] ».
Rule for printing the name of an object (called O):
if the language of play is the French Language, say « [printed name of O] »;
else say « [English printed name of O] ».
[Traduction des articles des objets.]
A thing can be default-articled or custom-articled. A thing is usually default-articled. [Pour donner un article autre que celui par défaut, il faut qu’il soit custom-articled et spécifier son article dans la source.]
When play begins:
repeat with T running through default-articled things:
if T is plural-named:
now the indefinite article of T is « [if the language of play is the French Language]des[else]some[end if] »;
else:
if T is male:
now the indefinite article of T is « [if the language of play is the French Language]un[else]a[end if] »;
else:
now the indefinite article of T is « [if the language of play is the French Language]une[else]a[end if] ».
Part 2 - Scénario
France est un endroit. « Vous êtes en France, et le Royaume-Uni est au nord. ».
La tour Eiffel is a fixed in place custom-articled thing in France. The indefinite article of la tour is « la ».
The fromage is privately-named in France.
The English printed name is « cheese ».
Understand « fromage » as the fromage when the language of play is the French Language.
Understand « cheese » as the fromage when the language of play is the English Language.
United-Kingdom is north from France. « You are in the United-Kingdom, and France is south. ».
Big Ben is fixed in place in United-Kingdom.
Carry out going to United-Kingdom:
switch to English.
Carry out going to France:
switch to French.
Test me with « wait / attendre / prendre fromage / i / nord / attendre / wait / i ».[/code]
Il doit rester des choses qui restent en français, mais ça marche en tout cas (il n’y a qu’à taper « test me » pour vérifier). Il ne faut pas oublier de remplacer les espaces par des tabulations pour ce qui est de l’indentation. Et bien évidemment, la tâche la plus longue, retranscrire toutes les réponses et les commandes pour les deux langues !
En tout cas, ça me donne des idées ! À voir qui sera le premier à faire une FI bilingue !
P.S. — Est-il possible d’ajouter la coloration syntaxique dans les balises de code ?