Forum d'entraide à la création de jeux d'aventure
 
PortailPortail  AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 [résolu] Comment changer de traduction depuis un menu du jeu ?

Aller en bas 
4 participants
AuteurMessage
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyLun 18 Juil 2016 - 12:31

Salut à tous,
J’ai remarqué que quelques jeux AGS offrent la possibilité de choisir la langue dans un menu une fois le jeu lancé, au lieu de passer par l’éditeur de paramètres.
Ma question est donc simple, comment faire ?
J’imagine qu’il existe une possibilité d’éditer le fichier acsetup depuis le jeu, mais cela ne semble pas être nativement proposé et cela dépasse mes compétences…


Dernière édition par Arlann le Mar 19 Juil 2016 - 13:44, édité 1 fois
Revenir en haut Aller en bas
Billbis
Disciple de la Grande Tasse Bleue
Disciple de la Grande Tasse Bleue
Billbis


Nombre de messages : 1346

Date d'inscription : 10/05/2012


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyLun 18 Juil 2016 - 21:11

Pour changer la langue en jeux, il faut utiliser la fonction Game.ChangeTranslation().
Avec la dernière béta d'AGS 3.4.0, le moteur va écrire le nom du langage en cours dans le fichier acsetup.cfg comme un grand.

Pour les ancienne versions, il faut en effet le faire à la main, sinon la langue sélectionné n'est pas enregistré (ce qui n'est pas nom plus super grave).
Moi j'utilisais le module de Kitai FichierParametres comme ceci, dans le script global:

Code:
FichierParam AGScfg;
AGScfg.Open("acsetup.cfg","=");

function bMenuEnglish_OnClick(GUIControl *control, MouseButton button)
{
  Game.ChangeTranslation("");
  AGScfg.SetParam("translation", "Eng");
}

function bMenuFrench_OnClick(GUIControl *control, MouseButton button)
{
  Game.ChangeTranslation("French");
  AGScfg.SetParam("translation", "French");
}

function bMenuSpanish_OnClick(GUIControl *control, MouseButton button)
{
  Game.ChangeTranslation("Spanish");
  AGScfg.SetParam("translation", "Spanish");
}

Bon courage ! sourire

_________________
Mon petit DevBlog
Revenir en haut Aller en bas
http://nothingaboutthedog.blogspot.fr/
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMar 19 Juil 2016 - 13:48

Merci Billbis,

Je ne sais pas pourquoi, mais j'étais complétement passé à côté de cette fonction...
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMer 18 Nov 2020 - 12:18

Bonjour !

Je déterre ce sujet pour une petite question :

- j'aimerai ajouter des langues pour mon jeu (version FR et version anglaise pour le moment)

- naturellement je conçois mon jeu en français sur l'éditeur AGS. Et si j'ai bien compris, il faudrait générer une traduction (via l'éditeur) et utiliser la fonction Game.ChangeTranslation() pour passer en anglais via un menu.

- seulement, si après avoir transcrit le jeu en anglais via le menu, je souhaite repasser en français (imaginons que je me sois trompé clin d'oeil ) : comment faire cela ? Il n'existe pas de traduction française pour un jeu conçu en français, donc...?

J'espère que ma question n'est pas si bête...
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMer 18 Nov 2020 - 14:44

Je lis dans la description du paramètre à passer à la commande ChangeTranslation :
Citation :
Ce peut aussi être une chaîne vide, auquel cas la traduction en cours sera annulée, et le jeu retournera dans sa langue par défaut.

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMer 18 Nov 2020 - 14:58

Alors en effet : c'était une question bête sourire

Mais je suis rassuré !
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMar 5 Jan 2021 - 21:19

Je viens de rencontrer une chose étrange : j'ai traduit mon jeu en anglais, mais je remarque que toutes les chaînes de caractères de type String.Format("%s [ %s") avec les %s étant deux String définies séparément ne sont pas traduites. Dans le fichier de traduction, chaque String est traduite séparément, mais lors du jeu, ça repasse en français comme si le fait de les combiner créait une nouvelle chaîne de caractères qui ne peut pas être traduite...

Je ne sais pas si je suis clair, donc voilà ce qui se passe :

Code:
String nom = "Cathy";
// TRaduit : "Cathy"
String bio = "J'ai 21 ans et je suis une ado ennuyeuse.";
// Traduit : "I am 21 years old and I am a boring teenager."

Display("%s[[%s", nom, bio);
// Bizarrement, cela affiche : "Cathy
J'ai 21 ans et je suis une ado ennuyeuse."

Cela semble étrange car si on doit traduire un jeu, l'intérêt est justement de pouvoir traduire ce genre de combinaisons... Ou alors j'ai manqué quelque chose ?

EDIT : très curieux, car il semblerait que parfois, seule la moitié de la string est traduite dans le jeu, alors qu'elle l'est intégralement dans le fichier de traduction...
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMar 5 Jan 2021 - 23:25

Qu'est-ce qui se passe si tu insères pas de retour à la ligne mais un autre caractère, genre deux-points ?

PS : j'imagine qu'on peut débattre de "ado" en français, mais à 21 ans on n'est clairement plus teenager depuis un ou deux ans clin d'oeil

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyMer 6 Jan 2021 - 6:56

Hello,

Alors, je viens d'essayer sur le jeu de base avec notre cher Roger, et le résultat est le même : les chaînes "%s : %s : %s" sont toutes en français alors qu'elles peuvent apparaître en anglais si elles sont affichées seules.

ça doit être une crise d'ado du programme... clin d'oeil

Mais en vérité, c'est gênant, ce serait étonnant que personne n'ait eu le même problème avant !

EDIT : Ben en fait, j'ai trouvé... Pour ce genre de chaînes, il faut utiliser la fonction GetTranslation. Le jeu ne détecte pas automatiquement la traduction pour des formules "%s %s" , Append ou Compare... Ouf, me voilà rassuré !!
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyVen 29 Jan 2021 - 20:14

Re !

Je reviens sur ce sujet pour demander s'il y a une solution à mon problème (quelle intro, ce message !!)

Alors, suite à mon message précédent, je rencontre le problème suivant que je vais schématiser pour que ce soit plus simple :

Code:
String A = String.Format(GetTranslation("Salut %s"), GetTranslation("tu vas bien ?"));
String B = String.Format(GetTranslation("%s , Je suis un héros", A));

Lorsque je change la traduction du jeu PENDANT le jeu (Game.ChangeTranslation), la string B s'affichera dans la mauvaise langue (celle avant le changement). Par contre, si je redémarre le jeu, elle s'affichera dans la bonne langue (celle après le changement).

Quelqu'un saurait-il pourquoi ?
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 0:30

Essaie
Code:
String A = String.Format("%s%s", GetTranslation("Salut"), GetTranslation("tu vas bien ?"));
String B = String.Format("%s%s", GetTranslation(A), GetTranslation(", Je suis un héros"));
Ça risque de changer un peu la liste des lignes exactes à traduire, mais il me semble que tu veux pouvoir traduire "Salut", "tu vas bien ?" et ", Je suis un héros" indépendemment, c'est bien ça ?

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 8:10

Kitai a écrit:
mais il me semble que tu veux pouvoir traduire "Salut", "tu vas bien ?" et ", Je suis un héros" indépendemment, c'est bien ça ?

Ben pas vraiment, c'est juste que je comprends pas pourquoi le jeu l'affiche d'une manière (la mauvaise) si on change la langue pendant le jeu, et d'une autre manière (la bonne !) si on quitte puis relance le jeu.

J'imagine que si le reboot fait que ça fonctionne, c'est qu'il n'y pas de problème de code ? J'ai testé en mettant des "GetTranslation" partout, et ça ne change pas la donne.
Revenir en haut Aller en bas
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 9:13

Je ne me souviens pas pourquoi mais dans un de mes codes j'ai utilisé GetTranslation ainsi :
Code:
if (IsTranslationAvailable()==1) a = GetTranslation(a);
/*et*/
if (Game.TranslationFilename=="English") b = GetTranslation(b);
Peut-être ai-je rencontré le problème que tu décris, c'est à tester.

EDIT : En y réfléchissant je me pose cette question : si tu utilises le résultat de ta variable string A dans un GetTranslation() alors qu’elle a été composée par une concaténation de plusieurs variables, je ne vois pas comment AGS peut la retrouver dans le fichier traduction du jeu. De plus, si la variable string A contient un texte qui vient d'être traduit, il n'y a aucune raison de lui redemander un GetTranslation() quand tu l'utilises dans ta variable B.
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 17:27

Ah ok, j'ai pigé. En gros, la String A qui est un assemblage de deux variables est définie lors du lancement du jeu. Du coup, si en jeu je change la traduction, et que j'appelle la String B qui est un mélange de A et d'une autre variable, forcément AGS n'a pas "mis à jour" la traduction de la String A, celle-ci n'étant pas redéfinie lors du changement de langue ?

ça voudrait dire que toutes les Strings de la forme B (composées d'une String du type A et d'une autre variable) auront ce problème ?

Donc à chaque changement de langue, il faut redéfinir les String de type A avec des GetTranslation ?

EDIT : purée, je viens de vérifier, effectivement, c'était ça le problème !! grand sourire
Revenir en haut Aller en bas
Arlann
Cliqueur Amateur
Cliqueur Amateur
Arlann


Nombre de messages : 286

Date d'inscription : 06/04/2016


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 17:53

Oui c’est ça.
Généralement un joueur choisit sa langue dans le menu de lancement du jeu et n’a pas de raison de changer par la suite. Tu devrais "générer" toutes tes variables après ce choix.
Si tu veux vraiment que le changement de langue soit accessible en permanence il faut envisager une fonction dédiée à la mise à jour.
Revenir en haut Aller en bas
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptySam 30 Jan 2021 - 18:02

Oui, du coup c'est ce que je viens de faire ! Bon le jeu est encore en alpha, donc y aura sans doute des mises à jour de la fonction dédiée, mais on va y arriver clin d'oeil
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyDim 31 Jan 2021 - 1:19

C'est précisément pour ça que je proposais de ne pas passer à GetTranslation une concaténation de String's.

De façon générale je te déconseille d'insérer un méta-caractère comme %s à l'intérieur de GetTranslation quand c'est quelque chose qui est censé être évalué par String.Format

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyDim 31 Jan 2021 - 9:14

Mais du coup, toutes les concaténations (quel mot !) de STrings doivent être traduites "manuellement" ?
Revenir en haut Aller en bas
Kitai
Délégué de la tasse bleue
Délégué de la tasse bleue
Kitai


Nombre de messages : 2907

Date d'inscription : 01/08/2006


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyLun 1 Fév 2021 - 6:31

Dans le code de mon message plus haut, tu devrais traduire manuellement "Salut", "tu vas bien ?" et ", Je suis un héros", c'est-à-dire chacune des Strings que tu passes comme argument à GetTranslation (c'est l'idée de la fonction).

Si tu veux traduire "Salut, tu vas bien ?" d'un côté et "Je suis un héros" de l'autre, alors il faut appeler GetTranslation deux fois, une fois sur chacune de ces Strings.

Je suis pas bien sûr de voir ce que tu essaies de faire de différent

_________________
Ga is Ga
Vous pouvez consulter l'aide d'AGS 3.2 en français et contribuer à la traduction et à l'amélioration si le cœur vous en dit !
Revenir en haut Aller en bas
http://admin.no.uchi.free.fr/dokuwiki-2008-05-05/doku.php
Baguettator
Cliqueur Amateur
Cliqueur Amateur
Baguettator


Nombre de messages : 232

Date d'inscription : 21/05/2020


[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? EmptyLun 22 Fév 2021 - 12:03

OK désolé de pas avoir répondu, mais je m'en suis sorti avec ces GetTranslation, j'en ai mis partout à chaque String faites de deux "morceaux" (ou plus), et ça fonctionne. Je n'ai pas vu comment faire autrement, étant limité dans la longueur des fragments.

Par ailleurs je me demandais : j'ai fait une traduction de mon jeu en anglais, le .tra est compilé, seulement, le jeu n'est pas encore fini (et il y aura sans cesse des ajouts). Si je veux mettre à jour la trad :

- quand je met à jour le fichier de traduction dans l'éditeur ("Update"), cela refait un scan de tous les textes ?

- si le scan trouve des nouveaux textes, il les ajoute à la fin du fichier .trs ?

- il efface d'éventuels textes qu'il ne trouve plus (si par exemple je les ai modifiés ou si je les ai supprimés) ainsi que leur traduction ?

- quelle serait la méthode la plus simple pour mettre à jour une traduction de plusieurs milliers de lignes, sachant qu'elle va être amenée à être revue plusieurs fois ?

(mon jeu va connaître de multiples ajouts, car c'est une "extension" à un jeu de société, donc j'ajoute du contenu officiel ou fan-made.)

Je préfère demander avant de faire une bêtise clin d'oeil
Revenir en haut Aller en bas
Contenu sponsorisé





[résolu] Comment changer de traduction depuis un menu du jeu ? Empty
MessageSujet: Re: [résolu] Comment changer de traduction depuis un menu du jeu ?   [résolu] Comment changer de traduction depuis un menu du jeu ? Empty

Revenir en haut Aller en bas
 
[résolu] Comment changer de traduction depuis un menu du jeu ?
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Traduction/Changement prépositions
» [résolu]Comment importer un dessin papier/une photo dans AGS?resolu
» [résolu]Touche escape pour menu pause
» Comment faire un menu
» [résolu]Appeler une fonction depuis un autre Script ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Adventure Games Studio fr :: CREATION DE JEUX :: Questions / Réponses-
Sauter vers: