[PHP] Comment gérer les langues dans un jeu multijoueur ? - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [PHP] Comment gérer les langues dans un jeu multijoueur ? (/showthread.php?tid=3928) |
[PHP] Comment gérer les langues dans un jeu multijoueur ? - cipic - 25-04-2009 Bonjour à tous, je connais des bases en pHp/MySQL et XHTML/CSS ainsi qu'en conception de bdd. je souhaite developper un rpg multijoueur en ligne avec le jeu traduit en diverses langues, et possibilité de rajouter 'facilement' une langue de plus si besoin. j'ai essayé avec des bdd relationnelles mais ça devient vite une usine à gaz. selon vous, quelle est la meilleure manière de gérer le problème ? RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - madri2 - 25-04-2009 des constantes et un fichier contenant la définition des constantes par langue RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - Zamentur - 25-04-2009 Une classe qui gère tes langues (ou alors gettext mais çà ecarte l'hébergement mutualisé) Voici une classe text simplifié en php4: Code PHP :
Un fichier langue ressemble alors à çà: lang/fr/mes_text.fr.lang.php Code PHP :
Et pour les récupérer: Code PHP :
On peut aussi transformer la classe pour avoir une utilisation en php5 du style: Code PHP :
Pour ajouter une langue il suffit juste de créer un dossier avec le diminutif de la langue et comportant les même fichier mes avec les textes traduits. Pour obtenir les variable de cette langue il faut utiliser l'objet retourné par text::get_instance($diminutif_lang); NB: sinon il y a bon nombre de framework qui propose ce genre de chose, cakephp, etc... Ca permet d'éviter de refaire la roue comme ci dessus RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - wild-D - 26-04-2009 faut aussi savoir ton jeu c'est quel style ? C'est juste un jeu solo ? parce que les 2 solutions proposées le font pour la langue d'interface. Par contre pour les interaction libre entre joueurs (tchater, mp, ... en fait ce que tu veux) si un francophone pur, tombe sur un allemand pur la discussion va tourner court. Dans ce cas là de forte chance que tu devras gérer aussi la langue au niveau de la bdd (par table, ou flag), tu pourras pas y échapper. (parce que te retrouver incapable de discuter avec ton interlocuteur ça casse quand même un peu l'ambiance ... à moins de faire comme dans la vrai vie; "chacun son pays" et libre à toi d'aller visiter les pays voisin et si tu connais pas la langue t'assume ^^) RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - Zamentur - 26-04-2009 Pour çà une piste peut être de aire des phrases prêt faite afin d'aider les joueurs à communiquer entre eux. Du genre le joueur français sélectionne bonjour (ou salut) et çà répond dans la langue de l'autre par exemple anglais hello (ou hi). C'est un moyen assez sommaire, mais si il y a quand même quelques phrases çà peut briser la glace... RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - jo_link_noir - 26-04-2009 On peut utiliser un traducteur aussi, j'pense à l'api de google mais c'est le seul que je connais. RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - cipic - 26-04-2009 merci à tous pour vos réponses, je vais étudier ça ! pour info c'était plutôt un problème d'interface : je souhaite que les descriptions des divers objets, lieux, missions etc. ainsi que l'interface des menus puisse changer facilement en fonction de la langue utilisateur. je ne suis pas encore très doué en POO j'étudie ça depuis ce matin mais c'est l'occasion de s'améliorer. mon but va donc être de lier ma bdd de personnages, lieux, objets à ces fichiers langues. je reviendrai bientôt je pense ^^ RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - cipic - 26-04-2009 arf je ne comprends pas bien le code... jme sors pas de Fatal error: Call to a member function mes_text__attack() on a non-object in /Applications/MAMP/htdocs/lang/appel.php on line 7 concernant :
RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - Zamentur - 26-04-2009 Normal Il faut utiliser cette syntaxe là: Code PHP :
Car cette classe je l'ai faite pour du php4 à la base, cependant tu peux rajouter dedans Code PHP :
Pour avoir en prime l'effet suivant avec php5 Code PHP :
D'ailleurs avec php5 je te conseille de définir les private et public devant les méthodes afin d'assurer la bonne utilisation de l'objet! Tu peux notamment mettre le constructeur en private... Puisqu'il faut passer par get_instance RE: [pHp] Comment gérer les langues dans un jeu multijoueur ? - Holy - 26-04-2009 Bête réflexion, mais avant de commencer à penser "traduction", plusieurs langues, tout ça, essayez déjà d'avoir une base solide en une seule langue. Pour ma part, sauf équipe professionnelle, je n'ai jamais vu de sites amateurs en plusieurs langues (ça n'a d'ailleurs souvent qu'un intérêt limité). |