Page 1 sur 1

Bug avec fichier de traduction

Posté : 28 mai 2014, 10:50
par jimmyneutron
Bonjour,

Il y a vraisemblablement plusieurs approches pour les sites multilingues.

Initialement j'ai opté pour un fichier PHP contenant l'ensemble des variables utiles :

[php]if ( $langue == "fr" )
{
define( "TXT_VAR1", "TEXT1_fr" );
define( "TXT_VAR2", "TEXT2_fr" );
define( "TXT_VAR3", "TEXT3_fr" );
}
else if ( $langue == "en" )
{
define( "TXT_VAR1", "TEXT1_en" );
define( "TXT_VAR2", "TEXT2_en" );
define( "TXT_VAR3", "TEXT3_en" );
}[/php]

Bizarrement il arrive que des chaines ne sortent pas du tout comme prévu. Des mots se mélangent. Des espaces s'insèrent ici et là. Toujours sans logique apparente. De façon aléatoire.

Cette méthode poserait-elle problème au niveau de la charge du serveur ?

J'utilise un MUTU chez OVH. PHP 5.2.17.

Merci pour votre aide.

Re: Bug avec fichier de traduction

Posté : 28 mai 2014, 11:10
par telnes
hello

peux tu nous donner un exemple d'utilisation des var dans ton fichier php (notamment ou ça se mélange )

++

Re: Bug avec fichier de traduction

Posté : 28 mai 2014, 13:49
par sirakawa
Ce qui m'intéresserait, moi, c'est plutôt comment sont constitués les fichiers contenant les textes finaux. Cette solution me semble bien compliquée, mais fcile à simplifier.

Re: Bug avec fichier de traduction

Posté : 28 mai 2014, 15:08
par jimmyneutron
Bonjour,

Merci de l'intérêt que vous portez à mon problème.

Tout d'abord je définis la langue dans un paramètre de l'URL avec un URL Rewriting dans mon .htaccess

Ex : mondomaine.com/fr/page

[php]$langue = $_GET["langue"];[/php]

Avant d'écrire mon code HTML j'inclus mon fichier de traduction

[php]require( "traductions.php" );[/php]

Puis j'utilise tout simplement mes constantes en générant le code HTML :

[php]echo( "<h1>" . TXT_VAR1 . "</h1>" );[/php]

Re: Bug avec fichier de traduction

Posté : 28 mai 2014, 17:17
par sirakawa
Ce que je voulais savoir, c'est si tu as autant de fichiers que de langues différentes :
fic_fr.php
define ("TEXT_VAR1", "Mon compte");
fic_en.php
define ("TEXT_VAR1", "My account");
etc
ou
un seul fichier
d
efine ("TEXT_VAR1_fr", "mon compte");
define ("TEXT_VAR1_en", 'My account");

Re: Bug avec fichier de traduction

Posté : 02 juin 2014, 09:10
par jimmyneutron
Bonjour,

Comme indiqué dans mon premier message, j'utilise un fichier de traduction pour l'ensemble des langues :

[php]if ( $langue == "fr" )
{
define( "TXT_VAR1", "TEXT1_fr" );
define( "TXT_VAR2", "TEXT2_fr" );
define( "TXT_VAR3", "TEXT3_fr" );
}
else if ( $langue == "en" )
{
define( "TXT_VAR1", "TEXT1_en" );
define( "TXT_VAR2", "TEXT2_en" );
define( "TXT_VAR3", "TEXT3_en" );
}[/php]

Re: Bug avec fichier de traduction

Posté : 02 juin 2014, 09:21
par Elie
Quand je fais un site en multilangue, je me sers tout simplement d'un tableau en fait .

$langue['fr']['bonjour'] = 'Hello comment ca va ?';
$langue['en']['bonjour'] = 'Hy, how are you ?';

C'est plus simple quoi ...

Re: Bug avec fichier de traduction

Posté : 02 juin 2014, 11:01
par jimmyneutron
Merci pour ta remarque.

J'ai déjà utilisé ce genre de pratique. Mais pour le projet concerné j'ai utilisé des constantes plutôt que des variables ou tableaux multidimensionnels car j'ai lu un tutoriel qui préconisait cet usage.

Je ne suis pas contre avoir une autre approche, mais j'aimerais bien comprendre l'origine de ce dysfonctionnement.