Se connecter / S'enregistrer
Votre question

[PHP] Plusieurs langues dans un seul fichier

Tags :
  • Html
  • Programmation
Dernière réponse : dans Programmation
21 Août 2006 00:43:21

Bonjour !
Je suis en train de faire un site multiligue (pour l'instant français et anglais mais pourquoi pas plus plus tard).
C'est pour ça que j'ai besoin d'un système pratique.

J'ai fait ça vite fait donc j'ai une page PHP qui inclus soit page-fr.html soit page-en.html en fonction de la valeur du paramètre langue.

Mais deux fichiers différents pour chaque page, ça va vite devenir compliqué, donc je préfèrerais un seul fichier page.html pour chaque page avec dedans un truc du genre :
Citation :
[FR] première ligne en français
[EN] first line in english
[ES] primera linea en español

[FR] deuxième ligne en français
[EN] second line in english
[ES] segunda linea en español

Et le script php qui inclus la page page.html fait le tri en ne prenant que les bonnes lignes.
Il faudrait aussi que les lignes sans marqueur de langue devant soient toujours incluses.

Je pense que c'est possible mais je ne sais pas du tout comment faire.

Autres pages sur : php plusieurs langues seul fichier

21 Août 2006 09:36:18

Salut,

Mauvaise technique.
Voici un petit tuto pour gérer l'internationnalization en php.
Il y a d'autres tutoriaux, mais c'est en gros la technique à utilisé.
http://www.phpdebutant.org/article107.php
21 Août 2006 12:35:25

En gros c'est le même système que ce que j'ai actuellement, avec deux fichiers.
Ça m'arrange pas trop. J'ai déjà vu dans phpBB, il y a certaines parties du code HTML qui sont ignorées ou non par le script PHP. J'ai pas bien compris comment c'était fait, mais je voudrais la même chose.
Je vais essayer de me replonger dans le code de phpBB en attendant.
Contenus similaires
21 Août 2006 12:42:46

Heu, non, c'est pas tout à fait le même systeme.
Ici, on définit des constantes.
Genre :
fichier-fr.inc.php
CONST_HELLO=Bonjour
fichier-en.inc.php
CONST_HELLO=Hello

Et apres, lorsque l'on veut afficher bonjour, on appelle une fonction qui va prendre en compte la langue utilisée, et inclure me bon fichier de langue.
23 Août 2006 02:08:49

Finalement, j'ai trouvé une autre solution pas mal :

Je transforme page.html en page.php et je met ça dedans :
Citation :
<?php
if (langue==fr) {echo "en français";}
if (langue==en) {echo "in english";}
if (langue==es) {echo "en español";}
echo "<br />\n";
?>
a c 145 L Programmation
23 Août 2006 09:14:22

au risque de paraitre chiant, ton système ne gère pas le cas d'une langue non définie (voir une langue par défaut) et peut très vite devenir lourd.
Oriente toi plutôt vers switch:
  1. <?
  2. switch($langue) {
  3. case "en":
  4. echo "in english";
  5. break;
  6. case "es":
  7. echo "en español";
  8. break;
  9. default:
  10. echo "en français";
  11. break;
  12. }
  13. echo "<br />\n";
  14. ?>
23 Août 2006 13:24:14

Si, j'ai mis la gestion de la langue par défaut, mais j'ai pas mis tout mon code (c'est dans un autre fichier que ça se passe).

Merci pour ton code, je verrais ça.
Mais j'ai déjà une idée pour faire ce que j'avais dit au début, je vais essayer.
23 Août 2006 15:08:50

Voilà, j'ai réussi !

Mon script PHP :
Citation :
<?php
$fichier = file('http://XXXXXXXX/page.html');

for ($i=0;$i<count($fichier); $i++)
{
$ligne = explode("]",$fichier[$i]);
if ($ligne[0] == $langue || !$ligne[0])
{
echo $ligne[1] . "\n";
}
}
?>

Et dans page.html :
Citation :
fr]En français.
en]In english
es]En español
]<br />
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS