09-10-2020, 12:04 PM
Salut,
d'abord, ahah, vu que j'ai ramené tous les articles du wiki dans cette section, on dirait que je suis le seul à poster x)
Pour revenir sur le sujet initial, j'ai un jeu, Dracca, qui a vocation a être en anglais et en français. Pourquoi? Parce que je connais des anglophones et des francophones que le jeu pourrait intéresser, donc, j'aimerai bien avoir la présence des deux dans le jeu, histoire d'avoir une audience un peu large.
Du coup, je me demande comment mettre cela en place... Pour les textes de base, ça va: j'ai simplement créer une méthode Html::fren('texte francais', 'texte anglais'); et je peux facilement faire ma traduction (la langue étant sélectionnée à partir de la langue choisie dans les options du compte, ou du Accept-Language si l'utilisateur n'est pas connecté).
J'aurai pu faire comme décrit ici https://jeuweb.org/showthread.php?tid=5876 mais je trouve que les fichiers de constantes ou de strings i18n ne sont pas souples pour certains textes (pluriels par exemple). Alors, certes, dans mon cas "mais si tu veux rajouter de l'allemand t'es tout coincé?". Sauf qu'alors, je créerai un Html::frende('francais', 'anglais', 'allemand'); et traduirait le jeu petit à petit. Et si "ouais mais tu parles pas allemand: comment tu vas faire?", alors je n'aurai qu'à extraire (regex/parser/osef) les textes existants du code pour les donner à un allemand puis les réintégrer.
Mais au final, là n'est pas le problème. Car tout cela, c'est joli, ça marche bien, mais maintenant, quid des noms des lieux? Du nom des items? (le noms des personnages, limite, ce n'est pas traduis, donc admettons qu'on l'ignore)?
Par exemple, le nom des stats du personnage (intelligence, force, rapidité...) est actuellement dans la DB, le français dans une colonne l'anglais dans l'autre. Idem pour les éléments (feu, eau, air...) ou les lieux (cuisine, caverne, grotte, ville de Truc...). Mais je trouve ça lourd car il faut envoyer à la DB (tout étant sous forme de procédure stockée) la langue de l'utilisateur, et faire un SELECT ... IF(lang = 'fr', colonne_nom_fr, colonne_nom_en) AS nom.
Alors, auriez-vous des idées ou des suggestions d'autres mécanismes de traduction?
L'alternative que j'envisage, somme toute très simple, c'est sinon de dire "prout, je mets tout en anglais: simple, facile, et suffisant". Les francophones suivront (car je sais que mes anglophones ne parlent pas français, mais mes francophones sauraient jouer sur un jeu en anglais)...
d'abord, ahah, vu que j'ai ramené tous les articles du wiki dans cette section, on dirait que je suis le seul à poster x)
Pour revenir sur le sujet initial, j'ai un jeu, Dracca, qui a vocation a être en anglais et en français. Pourquoi? Parce que je connais des anglophones et des francophones que le jeu pourrait intéresser, donc, j'aimerai bien avoir la présence des deux dans le jeu, histoire d'avoir une audience un peu large.
Du coup, je me demande comment mettre cela en place... Pour les textes de base, ça va: j'ai simplement créer une méthode Html::fren('texte francais', 'texte anglais'); et je peux facilement faire ma traduction (la langue étant sélectionnée à partir de la langue choisie dans les options du compte, ou du Accept-Language si l'utilisateur n'est pas connecté).
J'aurai pu faire comme décrit ici https://jeuweb.org/showthread.php?tid=5876 mais je trouve que les fichiers de constantes ou de strings i18n ne sont pas souples pour certains textes (pluriels par exemple). Alors, certes, dans mon cas "mais si tu veux rajouter de l'allemand t'es tout coincé?". Sauf qu'alors, je créerai un Html::frende('francais', 'anglais', 'allemand'); et traduirait le jeu petit à petit. Et si "ouais mais tu parles pas allemand: comment tu vas faire?", alors je n'aurai qu'à extraire (regex/parser/osef) les textes existants du code pour les donner à un allemand puis les réintégrer.
Mais au final, là n'est pas le problème. Car tout cela, c'est joli, ça marche bien, mais maintenant, quid des noms des lieux? Du nom des items? (le noms des personnages, limite, ce n'est pas traduis, donc admettons qu'on l'ignore)?
Par exemple, le nom des stats du personnage (intelligence, force, rapidité...) est actuellement dans la DB, le français dans une colonne l'anglais dans l'autre. Idem pour les éléments (feu, eau, air...) ou les lieux (cuisine, caverne, grotte, ville de Truc...). Mais je trouve ça lourd car il faut envoyer à la DB (tout étant sous forme de procédure stockée) la langue de l'utilisateur, et faire un SELECT ... IF(lang = 'fr', colonne_nom_fr, colonne_nom_en) AS nom.
Alors, auriez-vous des idées ou des suggestions d'autres mécanismes de traduction?
L'alternative que j'envisage, somme toute très simple, c'est sinon de dire "prout, je mets tout en anglais: simple, facile, et suffisant". Les francophones suivront (car je sais que mes anglophones ne parlent pas français, mais mes francophones sauraient jouer sur un jeu en anglais)...