JeuWeb - Crée ton jeu par navigateur
Multi-Langues - 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 : Multi-Langues (/showthread.php?tid=1448)



Multi-Langues - PatteDePoule - 09-07-2007

Bonjours à tous,

Est-ce que vous développez votre jeux en intégrant un système qui va vous permettre de mettre plusieurs langues dedans? Ou vous intégré directement le texte dans votre code et si jamais vous devenez "international" vous ferez une refonte du code?

Dans mon cas je développes mon projet en créant un système qui va me permettre d'ajouter / modifier des langues assez facilement. Je crée seulement la langue Française, mais la possibilité d'en ajouter d'autre est là.

Par exemple je me suis fait un dossier langue, et dedans je crées un dossier "fr". Si jamais je veux rajouter l'anglais, je fais une copie de "fr" en "en" et je traduis le contenu des fichiers en anglais.

lng/fr/
general.php
news.php
register.php
activation.php

lng/fr/mail/
activation.tpl
register.tpl
change_password_cfm.tpl
account_del.tpl
account_psv.tpl
account_vac.tpl



RE: Multi-Langues - Mysterarts - 09-07-2007

C'était pas pour un jeu mais pour un site d'entreprise, donc moins contraignant, c'est sur, et j'avais fait un système avec variable de session pour retenir la langue, puis include du fichier contenant tout le contenu du site en fonction de cette variable (obtenu via un lien en GET)? évidemment un fichier par langue, avec les même variables, mais pas les même contenu. Pour la base de données, j'avais penser à differencier les champs suivant leur langue...
Mais un peu chau pour un jeu, je l'admet...

Mysterarts


RE: Multi-Langues - Shidame - 09-07-2007

@Mysterarts : en base de donnée sauf si tu veux traduire les entrées utilisateurs (ca me semble improbable) il suffit de mettre les description et nom d'objet ou vaisseaux ou je ne sais quoi dans des tables a parts ou meme dans des fichiers xml


RE: Multi-Langues - Maegia - 09-07-2007

Moi, j'inclus dans chaque page le fichier de langue correspondant, contenant à l'intérieur les détails relatifs à chacune des langues. Je récupère ensuite la langue en fonction des paramètres du joueur, que je maintiens en variable de session. Par exemple, j'ai la page index.php qui va comme suit :

Code PHP :
<?php 
$lg
= $_SESSION['lang'];

echo
$lang[$lg]['title'];

Et j'ai mon fichier index.lang.php, inclus dans le fichier précédant, qui va comme suit :

Code PHP :
<?php 
// Fichier : index.php

$lang['fr']['title'] = 'Bonjour le Monde !';
$lang['en']['title'] = 'Hello World !';
$lang['es']['title'] = 'Asta la vista !'

Mais jamais je n'aurais fait un truc parreil pour un jeu, je dois l'admettre... Quoi que, à bien y penser, c'est peut-être le système qui permet le plus de modification par la suite puisqu'il n'y a toujours qu'un seul fichier à modifier, en plus du fichier des langues, bien sûr.


RE: Multi-Langues - Shidame - 09-07-2007

Maegia pkoi ne fait tu pas un fichier par lang ca utiliserai moins de memoire je pense (surtout si le fichier est gros)

tu inclus le fichier correspondant a la langue : index.fr.lang.php


RE: Multi-Langues - naholyr - 09-07-2007

Je ne suis pas fan des systèmes par «mot-clé», je préfère de loin un système à la gettext.

J'avais décrit le système maison que j'ai créé sur ce post.

Et sinon maintenant tous les nouveaux projets que j'ai commencé tournent avec Symfony, et j'utilise donc leur système de localisation très bien fichu.


RE: Multi-Langues - Jireck - 04-09-2008

de mon coté, je fais cela avec une fonction translate()

j'enregistre la langue definie par le user dans la base....
et j'inclue le bon fichier de langue...

exemple :

Code PHP :
<?php 
//#req sql
select langue from users
//xxx
include ("lang/$langue.php");
echo
tranlate("salut tout le monde");


//pour le fichier francais
function translate($phrase) {
if (
cur_charset=="utf-8") {
return
utf8_encode($phrase);
} else {
return (
$phrase);
}
}
//pour le fichier anglais
function translate($phrase) {
switch (
$phrase) {

case
"salut tout le monde": $tmp = "Hello everybody"; break;

default:
$tmp = "Translation error <b>[** $phrase **]</b>"; break;
}
return
$tmp;
}

Voila ...

si ca peux aider...


RE: Multi-Langues - JeromeJ - 24-09-2008

Perso je fais comme toi PatteDePoule ^^