Nouvelle version de FrenchG.h et French.h en préparation

Espace libre pour faire connaître vos dernières réalisations ou les événements concernant la communauté (concours, jeux individuels, etc.)

Modérateurs: Stormi, Otto Grimwald

Nouvelle version de FrenchG.h et French.h en préparation

Messagepar JL le Dim Sep 26, 2004 10:46 pm

Bonjour,

Actuellement lnform en français accepte :
"nord"
"aller au nord"

Je suis en train de rajouter (à l'aide de la fonction UnknownVerb qui permet de contourner simplement la limite du nombre de verbes) :
"va au nord"
"allez au nord"
"je vais au nord"
"allons au nord"

A l'aide de constantes du style DESACTIVER_IMPERATIF_2E_PERSONNE_PLURIEL, il sera possible de désactiver certaines formes pour la place mémoire, la vitesse, ou la cohérence du jeu.

J'en suis aux deux-tiers du travail.

A bientôt,

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JB le Lun Sep 27, 2004 7:53 am

A ce sujet, certains anglo-saxons m'ont contacté concernant Filaments car il n'arrivaient à rien faire dans le jeu...ils utilisaient des verbes à l'impératif du style "ouvre le sac" ou en "j'ouvre le sac"

Pour eux il était "impensable" de jouer avec des verbes à l'infinitif, qui nuisaient à l'immersion dans le jeu.

Je suppose que ce parti pris à néanmoins été choisi pour des facilités de programmation, l'infinitif étant invariable. Et depuis cela est rentré dans les habitudes, surtout avec les traductions LucasArts et leur interface Scumm en français.

JB
Avatar de l’utilisateur
JB
Grand Ancien
 
Messages: 510
Inscription: Mar Aoû 24, 2004 11:00 am
Localisation: Paris

Messagepar JL le Lun Sep 27, 2004 1:30 pm

Oui, j'ai eu récemment sur rec.arts.int-fiction une discussion ferme mais courtoise sur l'emploi de l'infinitif. Ceci m'a finalement amené à expérimenter sur une personne non habituée à ce type de jeu, et effectivement j'ai constaté que l'infinitif n'était pas instinctif. Or les vieux jeux en français sur Apple II (et les suivants ?) utilisaient l'impératif en priorité, ce qui explique sans doute que cette convention choque moins certains habitués.

Personnellement, ayant toujours joué en anglais, j'avais au départ implémenté l'impératif. Puis j'ai ajouté l'infinitif. Ensuite, j'ai harmonisé ma traduction avec un autre qui avait commencé une autre traduction en français (car j'avais attendu plus d'un an avant de publier, quel gâchis par ma faute...) et qui avait choisi uniquement l'infinitif.

Comme j'avais programmé d'une manière pas très futée la gestion des deux temps, j'avais finalement supprimé l'impératif, face à la majorité des français qui s'étaient manifestés pour l'infinitif. Cela m'a cependant permis d'avoir un code moins fouillis. Mais à présent, ayant trouvé dans le manuel une manière d'implémenter plus proprement ces ajouts, il n'y a plus de raison de se priver de l'impératif ni de l'indicatif.

-- JL

Pour Filaments, la réponse de la personne non initiée était : "j'ouvre le sac". Le fait de répéter tout le temps "je" n'est pas si ennuyeux (JE fais ça tout le temps...), et peut aider à l'immersion. Quand je lui avais annoncé qu'il fallait utiliser l'infinitif, son sentiment fut une déception, nuisible à l'immersion.
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Adrien le Lun Sep 27, 2004 4:37 pm

Pour ma part l'infinitif m'a toujours semblé évident, car les premiers jeux du genre auxquels j'ai joué (Orphée, SRAM 1 & 2, Harry et Harry (assez angoissant :)), et probablement d'autres...) se jouaient ainsi.

Pour les jeux français je n'ai jamais rencontré autre chose en fait. Et du coup pour les jeux anglais je m'imaginais taper à l'infinitif (après tout, chez eux ça s'écrit pareil...).


Même avec un interpreteur gérant l'impératif ou l'indicatif, je continuerai sans doute à taper "ouvrir sac" :) mais l'idée est excellente, et peut effectivement aider les étrangers et les nouveaux venus à mieux trouver leurs marques.
Avatar de l’utilisateur
Adrien
Très Ancien
 
Messages: 1101
Inscription: Mar Aoû 24, 2004 9:23 am
Localisation: Montpellier, France

Messagepar JL le Lun Sep 27, 2004 10:54 pm

Le passé du joueur semble donc bien influer son choix...

Quand l'infinitif, l'impératif, etc sont permis, c'est le joueur qui choisit, sans même s'en rendre compte.

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Mer Sep 29, 2004 12:04 pm

pour ma part je n'ai jamais réfléchi à la question :
en anglais il ne me serait pas venu à l'esprit de taper : "to open door", mais chez eux la différence entre l'impératif et l'infinitif est particulièrement ténue, en tout cas au point de vue aspect.
Donc "open door" -> "ouvrir la porte" ne me choque pas.
Alors qu'effectivement dans un jeu de rôle sur table je dirais "j'ouvre la porte".
Mais face à l'ordinateur je me sens mal lui parler de ma situation, et utiliser l'impératif me procure le même sentiment : je ne me donne pas d'ordre, je suis seul avec l'ordinateur, et je veux juste lancer une action comme si j'appuyais sur un bouton : "monter au premier étage".

Pour certains joueurs la possibilité d'écrire en vrai français, impératif ou indicatif peut être quand même un plus, bien que pour ma part je préfère le style télégraphique qui va plus vite à taper ("ouvre porte avec pied biche. Moi voie moi tue ;) " ), et aussi pour les raisons évoquées plus haut.

Par contre implémenter tout le becherell pour cela, avec les verbes irréguliers, c'est un peu difficile.
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3030
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Mer Sep 29, 2004 11:46 pm

J'ai terminé les verbes utilisés dans FrenchG.h. Vous pourrez bientôt récupérer la nouvelle bibliothèque ou juste copier-coller UnknownVerb.

Avant de publier, il reste encore des problèmes avec les verbes du style "s'asseoir", "se lever" ou "se regarder", qui ne sont pas si rares que ça en plus.

Et puis je compte rajouter quelques verbes. N'hésitez pas à me faire part des limites que vous rencontrez.

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JL le Mar Oct 05, 2004 12:51 am

La version 2.1 des bibliothèques Inform en français est pratiquement terminée. Je vais sans doute encore faire quelques modifs avant de l'envoyer sur l'if-archive, mais la voici au stade actuel :

http://jlpo.free.fr/french2.1test.zip

Pour tester le jeu "Aventure" compilé avec :

http://jlpo.free.fr/aventure_zplet.htm

Nouveautés :
- ajout de l'impératif dps ("va au nord"), de l'impératif dpp ("allez au nord"), de l'indicatif pps ("je vais au nord"), de l'impératif ppp ("allons au nord"), désactivables séparément
- Les tirets sont désormais supprimés (au lieu d'être précédés d'un espace).
- pronoms mieux gérés
- ajout d'une version avec tous les "é" remplacés par des @'e pour les possesseurs d'un Mac
- création de fonctions qui rendent beaucoup plus lisible et fiable LanguageToInformese (French.h)
- Les verbes pronominaux sont gérés dans LanguageToInformese (et plus par le verbe "se"). Par exemple, "se lever" devient "lever moi". "se" seul ("sud-est") est ignoré.
- ajout de verbes
- probablement extension du verbe parler : pour que "parler xavier" ou "parler à xavier" fonctionne
- 2 remplacé par WORDSIZE dans IsAWordIn (FrenchG.h)

--JL
Dernière édition par JL le Mer Oct 06, 2004 10:36 pm, édité 1 fois.
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Mer Oct 06, 2004 8:28 pm

très bien, je vais tester cela prochainement, voir surtout si cela ne cause pas de bug avec les versions précédentes.
Par exemple avec la mise à jour d'Inform (6.3 et le bibliothèques associées), j'ai remarqué que lors des descriptions il y avait "icié à la fin de l'énumération des objets, est-ce que c'est toi qui a ajouté cela, ou alors est-ce que cela a été modifié dans les bibliothèques anglaises et que cela a interféré sur la version française ?

J'ai vu aussi que ton site avait été bien enrichi avec des exemples, des outils etc... c'est une bonne chose pour ceux qui seraient intéressés par le sujet ! ;)
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3030
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Mer Oct 06, 2004 10:09 pm

Tu veux dire "ici" ? Peux-tu me donner un exemple ?

Sinon c'est sûr que changer de bibliothèque n'est jamais très rassurant. Au minimum, pour m'assurer que le jeu Aventure peut toujours être terminé, je lance un replay de Aventure compilé en mode debug (pour désactiver le hasard avec la commande random) avec aventure.rec et sous DosFrotz (pour la vitesse).

-- JL
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar JL le Ven Oct 08, 2004 4:16 pm

Si c'est le "ici" de : "Il y a de la nourriture, ici." dans Aventure alors cela ne dépend pas du tout des bibliothèques mais de aventure.inf.

-- JL

Peux-tu préciser si c'est bien cela ?
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Ven Oct 08, 2004 9:19 pm

oui, c'est bien de "ici" dont je voulais parler, le é était près du "... ;)

Le "ici" est bien rajouté après tous mes objets, cela ne vient pas de la source de mon jeu, et ne peut venir que de la bibliothèque.

Voici ce que
ancienne version :

Vous pouvez voir un bureau, le journal du jour, une canne et un hibou.

Vous pouvez voir un lit et un livre.


nouvelle version :

Vous pouvez voir un bureau, le journal du jour, une canne et un hibou ici.

Vous pouvez voir un lit et un livre ici.


Par contre j'ai regardé un peu dans la bibliothèque French.h, et j'ai trouvé :

else print "^Vous";
print " pouvez voir ";
if (n == 5) print "aussi ";
WriteListFrom(child(x1),
ENGLISH_BIT+RECURSE_BIT+PARTINV_BIT+TERSE_BIT+CONCEAL_BIT+WORKFLAG_BIT);
if (x1 ~= location) "."; else " ici.";



apparemment dans l'ancienne version il y a la même chose, donc la modification est une conséquence de la mise à jour de la version anglaise.
Si cela me gêne de trop, je pourrai modifier French.h au moment de compiler mon jeu définitif ;)
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3030
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Ven Oct 08, 2004 10:13 pm

Ah, ok !

Dans la version anglaise, le "here." en fin de phrase était là dès la version 6/10 des bibliothèques (peut-être avant) et n'a probablement jamais bougé depuis.

Voici ce qui a du se passer : lors de la première traduction j'avais enlevé le "ici", peu élégant en fin de phrase. Ensuite, lors de la version 6/30 qui m'a demandé pas mal de copier-coller sélectifs, j'ai dû retraduire sans copier-coller ce passage, omettant cette fois d'enlever ce regrettable "ici".

Je vais donc supprimer de nouveau le "ici." malencontreusement introduit. C'est fait : http://jlpo.free.fr/french2.1test2.zip

Lorsque vous trouvez des erreurs ou des phrases peu élégantes de ce style, n'hésitez pas à me les signaler. Si je réagis vite, vous aurez amélioré les bibliothèques sans avoir eu à les modifier (ce qui vous empêcherait ensuite de mettre à jour).

Si je ne réagis pas vite, négativement voire pas du tout, ou si vous souhaitez un style de phrase bien à vous (qui peut d'ailleurs varier selon le projet), ce qui se comprend pour une fiction interactive, vous pouvez redéfinir la fonction LanguageLM en modifiant ce qui ne vous satisfait pas sans modifier les bibliothèques elles-mêmes. Toutes ces modifications se retrouvent alors dans votre fichier-jeu.

Pour cela, insérez en haut du jeu :
Code: Tout sélectionner
Replace LanguageLM;

Puis copiez-collez la longue fonction LanguageLM dans votre jeu et personnalisez-la sans hésiter.

Voici un extrait très intéressant du manuel :
The Library is itself written in Inform, and with experience it's not too hard to alter it if need be. But to edit and change the library files themselves is an inconvenience and an inelegant way to carry on, because it would lead to needing a separate copy of all the files for each project you work on. Because of this, Inform allows you to Replace any routine or routines of your choice from the library, giving a definition of your own which is to be used instead of the one in the standard files. For example, if the directive

Replace BurnSub;

is placed in your file before the library files are included, Inform ignores the definition of BurnSub in the library files. You then have to define a routine called BurnSub yourself: looking in the library file "Verblibm.h", the original turns out to be tiny:

[ BurnSub; L__M(##Burn,1,noun); ];

All this does is to print out library message number 1 for Burn, the somewhat preachy “This dangerous act would achieve little.” You could instead write a fuller BurnSub providing for a new concept of an object being “on fire”.


Le plus simple reste cependant de redéfinir LanguageLM.

-- JL

Je n'ai pas encore essayé ceci : enregistrer le transcript du replay d'un jeu pour le comparer ensuite aux versions suivantes. Cela ne suffirait pas pour tester la non-régression des bibliothèques, mais cela permettrait de vérifier celle de votre jeu.
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Otto Grimwald le Sam Oct 09, 2004 8:22 am

Merci du conseil pour languageLM. Je préfère évidemment modifier la source de mon jeu plutôt qu'une bibliothèque publique destinée à être améliorée par la suite.

Pour le pb du "ici", j'ai cru tout d'abors à une nouveauté dans la version anglaise car en regardant dans un vieux répertoire avec ma modification originelle du FrenchGlulx.h, normalement pas mise à jour depuis la nouvelle version d'Inform, j'avais retrouvé le même code que celui que j'ai recopié plus haut. En fait c'était le premier répertoire que j'avais modifié pour tester ta nouvelle traduction des bibiothèques ! ;)

L'originale étant :

Code: Tout sélectionner
 Look:    switch(n)
           {   1: print " (sur ", (the) x1, ")";
               2: print " (dans ", (the) x1, ")";
               3: print " (comme "; @print_obj x1; print ")";
               4: print "^Sur ", (the) x1, ", ";
                  WriteListFrom(child(x1),
                      ENGLISH_BIT + RECURSE_BIT + PARTINV_BIT
                      + TERSE_BIT + CONCEAL_BIT);
                  ".";
         default: if (x1~=location)
                  {   if (x1 has supporter) print "^Sur "; else print "^Dans ";
                      print (the) x1, " vous";
                  }
                  else print "^Vous";
                  print " pouvez voir ";
                  if (n==5) print "aussi ";
                  WriteListFrom(child(x1),
                      ENGLISH_BIT + WORKFLAG_BIT + RECURSE_BIT
                      + PARTINV_BIT + TERSE_BIT + CONCEAL_BIT);
                  ".";
           }


Je n'ai pas encore testé tes améliorations de la bibliothèque, je vais faire cela dès maintenant
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3030
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar Otto Grimwald le Sam Oct 09, 2004 8:46 am

C'est effectivement un plus indéniable que de pouvoir utiliser l'impératif en fait, mais je ne m'en étais pas vraiment rendu compte par habitude de l'autre version. Le nouveau système est définitivement adopté.

Félicitation pour ton addition, j'ai été voir la source de FrenchG.h, cela a été un rude travail !


ps : j'ai eu juste un petit

"FrenchG.h", line 948: Fatal error: The memory setting MAX_DICT_ENTRIES (which is 1300 at present) hasbeen exceeded. Try running Inform again with $MAX_DICT_ENTRIES=<some-larger-number> on the command line.


à ma première compilation, vite résolu...
Dernière édition par Otto Grimwald le Sam Oct 09, 2004 8:14 pm, édité 1 fois.
Avatar de l’utilisateur
Otto Grimwald
Très Ancien
 
Messages: 3030
Inscription: Mar Aoû 24, 2004 12:02 pm

Messagepar JL le Sam Oct 09, 2004 4:22 pm

Super !

-- JL

Au fait, la version 1.2 est disponible.
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm

Messagepar Stormi le Mer Nov 22, 2006 5:14 pm

2 ans plus tard... Je voudrais juste ajouter un point au sujet de l'infinitif vs impératif en anglais.

Dans les jeux infocom, grands classiques, le manuel comporte en général l'indication suivante (traduction grossière et de mémoire) :

"Tapez vos commandes comme si elles étaient précédées de "Je veux" (I want to). Exemple : 'look at the window' => 'I want to look at the window'"

Si on tape les commandes dans cette optique, comme je l'ai toujours fait car j'ai commencé par le jeu The Hitchhiker's Guide To The Galaxy d'Infocom, les verbes peuvent être considérés comme étant à l'infinitif.

Voilà, juste pour dire que ce n'est pas si évident que cela que les verbes sont à l'impératif pour les anglais dans les fictions en anglais, même si je comprends que c'est plus facile pour eux de considérer le verbe comme étant à l'impératif qu'à l'infinitif puisqu'on tape un ordre.
Samuel V.
Avatar de l’utilisateur
Stormi
Grand Ancien
 
Messages: 1207
Inscription: Dim Avr 16, 2006 8:07 pm
Localisation: Lyon

Messagepar JL le Mer Nov 29, 2006 1:50 am

stormi a écrit:2 ans plus tard... Je voudrais juste ajouter un point au sujet de l'infinitif vs impératif en anglais.

Dans les jeux infocom, grands classiques, le manuel comporte en général l'indication suivante (traduction grossière et de mémoire) :

"Tapez vos commandes comme si elles étaient précédées de "Je veux" (I want to). Exemple : 'look at the window' => 'I want to look at the window'"

Si on tape les commandes dans cette optique, comme je l'ai toujours fait car j'ai commencé par le jeu The Hitchhiker's Guide To The Galaxy d'Infocom, les verbes peuvent être considérés comme étant à l'infinitif.

Voilà, juste pour dire que ce n'est pas si évident que cela que les verbes sont à l'impératif pour les anglais dans les fictions en anglais, même si je comprends que c'est plus facile pour eux de considérer le verbe comme étant à l'impératif qu'à l'infinitif puisqu'on tape un ordre.


Avant de me lancer dans ces modifications, j'avais discuté dans rec.arts.int-fiction sur ces histoires d'infinitif, mais en fait durant cette discussion malheureuse les personnes les plus gênées par l'infinitif n'étaient pas francophones (coïncidence ?). D'ailleurs l'équivalent choisi dans les interfaces graphiques pour "File / Save as..." est "Fichier / Enregistrer sous...". Autre remarque : l'orthographe exacte de l'infinitif est plus évidente que celle de l'impératif, je trouve (par exemple, "prendre" à l'impératif s'écrit-il "prend" ou "prends" ? je l'ai su à l'époque où j'avais programmé cela (même si le programme devait accepter les deux de toute façon), mais j'ai déjà oublié la réponse depuis).
JL
Grand Ancien
 
Messages: 287
Inscription: Mer Aoû 25, 2004 9:13 pm


Retourner vers Annonces

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron