JeuWeb - Crée ton jeu par navigateur
Un jeu polyglotte - Oui, mais comment ? - 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 : Un jeu polyglotte - Oui, mais comment ? (/showthread.php?tid=1679)

Pages : 1 2 3 4 5 6 7


Un jeu polyglotte - Oui, mais comment ? - Sephi-Chan - 30-08-2007

Salut à tous,

Plus je travaille à la conception de Seelies, plus je me dis qu'il faut que le jeu soit jouable en 2 langues. Le Français et l'Anglais.

Problème : Je ne veux pas mélanger les langues. Les francophones jouent entre eux et il en va de même pour les anglophones.

En sachant cela, comment puis-je mettre en place un tel système ? Je suppose qu'il n'y à pas 36 solutions :
  1. Avoir un couple (1 base de données + 1 site) pour chaque langue.
  2. Avoir 2 base de données (une par langue) et 1 seul site.
  3. Avoir 1 bases de données pour les 2 langues et 1 seul site.
Je grise la troisième solution qui me parait merdique à souhait.

Qu'est-il conseillé de faire ? Solution 1 ou 2 ?

Je vous remercie d'avance du conseil,


Sephi-Chan


RE: Un jeu polyglotte - Oui, mais comment ? - NicoMSEvent - 30-08-2007

perso, j'ai un site avec autant de langue qu'on veut (3 pour le moment), avec une seule base de données. la détection de la langue se fait par détection de la langue du navigateur, avec possibilité de la changer par la suite.
Chaque fois que j'ai un élément a traduire dans une table, je le remplace par un identifiant ( $i ) que je passe a une fonction qui ressemble à :
Code PHP :
<?php 
function TraduitMSG($i,$lang){
$res=GetLigneDB( RequestDB("SELECT $lang FROM traduction WHERE id='$i'")
$msg=$res[0];
return
$msg;
}

Donc, pour afficher quelque chose, je fais echo TraduitMSG(12,'FR');

ça implique que je dois retrouver autant de colonne dans la table 'traduction' qu'il y a de langues.


RE: Un jeu polyglotte - Oui, mais comment ? - kephren14 - 30-08-2007

La solution 2 est la plus evidente à mettre en place !
Comme l'indique NicoMSEvent c'est simple de traduire un site !
On peut meme eviter la traduction via la bdd en passant par un fichier.
Pourquoi tu veux separer les joueurs de differentes langues ?


RE: Un jeu polyglotte - Oui, mais comment ? - NicoMSEvent - 30-08-2007

je suppose que ces joueurs vont s'envoyer des messages... c'est pour homogénéiser le jeu, comme ça on a l'impression que tous les joureurs sont francophones (pour ceux qui ont choisi la langue de voltaire ;-) )

La solution 3 me parait la meilleure pour les points suivants :
-maintenance d'un seul site, et d'une seule base de donnée (plus facile)
-les versions sont toujours les mêmes pour tout le monde (pas de vieux bugs qui trainent pour une langue)
-les traduction en DB et pas le code : quand tu développe une page pour chaque langue, tu fais le développement 2 fois

La solution 3 me parait moins bonne pour les raisons suivantes :
-Quand le site est down a cause d'une erreur de script ou de DB, c'est toutes les langues qui sont down (a toi de mettre en place un serveur de développement... petit rappel : on ne travaille jamais directement sur le serveur de production :p )
-il faut prendre en compte dans tes scripts la langue que le joueur a choisi (un champ en plus pour les joueurs) -> ...WHERE user_lang=$my_lang

A toi de peser le pour et le contre de chaque solution :-p


RE: Un jeu polyglotte - Oui, mais comment ? - Sephi-Chan - 30-08-2007

Le jeu joue pas mal sur les interactions sociales, et donc les discussions.
Il me paraît donc essentiel de pouvoir choisir de communiquer avec des Francophones ou des Anglophones.

Je pense opter pour la méthode 2 : avoir 2 base de données (une par langue) et 1 seul site.

Je trouve cette solution bonne car le site est unique, il demande simplement la langue à utiliser sur une page de pré-accueil. Une fois celle ci choisie, elle est stockée dans un cookie. Si l'utilisateur n'accepte pas les cookies ben... Il choisira à chaque fois la langue.

Les base de donnée seraient donc identique, par conséquent les requêtes aussi. On a donc pas de risques de bug, à moins que ce ne soit sur le site en lui même auquel cas les deux langues sont concernées.


Sephi-Chan


RE: Un jeu polyglotte - Oui, mais comment ? - NicoMSEvent - 30-08-2007

n'oublie pas que quand tu rajoute un index (ou autre "tuning" d'une base de donnée), il faut aussi le faire pour l'autre... je vois bien déja des différences se profiler entre tes deux bases de données Wink
Pourquoi tu ne mettrais pas en db une fois pour toute les préférence de l'utilisateur? ou bien le choix de la langue se ferait par le nom de domaine? (titre du jeu en français ou en anglais pour le nom de domaine... ou en .com/.fr)

Ce sont des pistes que je donne, pas des solutions miracle :p


RE: Un jeu polyglotte - Oui, mais comment ? - Sephi-Chan - 30-08-2007

Ben par exemple :

L'utilisateur va sur le site Seelies.net, il n'a aucun cookie Langue sur son ordinateur, donc on lui affiche la page de sélection. Il clique sur le drapeau français, ça enregistre le cookie Langue, avec FR pour valeur.

A partir de là il est redirigé sur le vrai index qui, dès le début de page et après vérification du cookie Langue, se connecte à la BdD Francophone. Les parties statiques du site sont affichés en piochant dans un array en fonction de la langue choisie.

Dès lors il peut créer un compte sur la base de donnée Francophone, se connecter à son compte et toussa, et toussa quoi.


Sephi-Chan


RE: Un jeu polyglotte - Oui, mais comment ? - NicoMSEvent - 30-08-2007

c'est une idée comme une autre... il n'y a pas d'idée fondamentalement mauvaise Wink

j'aurais fait autrement, mais chacun a sa façon de travailler, ce n'étais pas dans l'intention de te dicter ce que tu dois faire ou ne pas faire ^^

Il y a aussi ceci qui pourrait être utile :
Code :
explode(",",$HTTP_ACCEPT_LANGUAGE);
ça te retourne la langue "préférée" de l'utilisateur (enfin, celle du navigateur tel que l'utilisateur l'a configuré)


RE: Un jeu polyglotte - Oui, mais comment ? - Globe - 30-08-2007

Personnellement j'utiliserais une seule base de données et un site, avec des champs langue des les tables ou ça importe...


RE: Un jeu polyglotte - Oui, mais comment ? - naholyr - 30-08-2007

Pourquoi pas un seul site, mais des zones géographiques dans ton monde ?
À la création de son personnage le joueur choisit s'il veut que son personnage atterrisse dans une zone francophone, anglophone, ou peu importe Wink

Les joueurs seront naturellement regroupés par langue, tu offres tout de même la liberté aux joueurs bilingues de pouvoir discuter avec tout le monde, et tu n'as rien de particulier à modifier dans le fonctionnement de ton jeu.