2010-01-28 7 views
0

Je veux utiliser quelque chose comme ça dans un fichier PHP:Parse un Résultat Valeur en HTML

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 
if ($USER['lang'] == 'dutch'){ 
// $about - becomes 'over' 
    } 
elseif ($USER['lang'] == 'spanish') { 
// $about - becomes 'sobre' 
    } 
else { 
// $about - becomes 'about' 
} 

et transférer les résultats dans un fichier HTML. Je pensais utiliser {about} dans la page HTML pour imprimer le résultat.

Est-ce que quelqu'un sait comment faire cela?

+0

Salut, l'espagnol est ma langue maternelle, utilisez « acerca de » comme traduction « sur »;) – rodrigoap

+0

Mais, je pense, le hollandais sur le travail de wont't plus. Est-ce "sur" comme dans "dans environ trois semaines", ou "à propos de moi"? –

+0

Je pense que c'est à peu près comme dans "Aide> A propos de Mozilla Firefox" – rodrigoap

Répondre

1

Vous souhaitez configurer une page multilingue. La façon la plus simple d'accéder aux mots serait d'utiliser un tableau

if ($USER["lang"] == "dutch") 

$words = array("about" => "over", 
       "word1" => "translation1", 
       "word2" => "translation2"); 

... 

echo $words["about"]; // Outputs the correct word for "about" 

Si c'est un plus grand projet avec beaucoup de mots, vous pouvez regarder une solution d'internationalisation entière comme Zend_Translation de Zend Framework. Il vous permet de stocker les traductions dans de nombreux formats différents, y compris des fichiers XML, des fichiers texte ou une base de données pour la vitesse.

+0

echo $ words ["about"]; sort le mot correct pour "about" seulement dans la page php. J'ai besoin qu'il soit sorti sur une page html. – martin

+0

Ne peut pas être fait en HTML pur. Vous pouvez soit analyser votre code HTML en PHP, ou avoir un script PHP écrire le code HTML traduit. –

2

En utilisant la même structure de code que vous avez actuellement:

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 

if ($USER['lang']) { 
    echo $about[$USER['lang']]; 
} else { 
    echo 'about'; 
} 

Assurez-vous que $ USER [ 'lang'] est correctement désinfecté/vérifié

Cette solution n'est idéale si vous avez quelques mots à traduire. Si vous souhaitez en faire plus que cela, vous devriez étudier en utilisant une bibliothèque de traduction complète.

Voici plusieurs bibliothèques de traduction qui pourraient vous intéresser vérifier:

Edit: Sinon, vous pouvez utiliser un commutateur. Cela signifie que vous n'avez pas besoin de comparer $ USER ['lang'] avec une liste de langues disponibles.

switch ($USER['lang']) { 
    case 'dutch': 
     $about = 'over'; 
    case 'spanish': 
     $about = 'sobre'; 
    default: //if $USER['lang'] doesn't match any of the 
       //cases above, do the following: 
     $about = 'about'; 
} 
+0

Gracias amigo, Je pense que je les utilise pour les changer. Mais qu'en est-il de la sortie dans une page html? – martin

+0

La variable $ about contient le mot 'about' dans la langue choisie. Pour afficher le contenu de la variable $ about, utilisez simplement "echo $ about" (sans guillemets) à n'importe quel point de votre code html que vous souhaitez afficher. Vous pourriez être intéressé par l'utilisation d'un moteur de template tel que Dwoo (http://dwoo.org). Si ma réponse a résolu votre problème, alors je vous serais reconnaissant si vous pouviez marquer ma réponse comme la solution acceptée (cliquez sur la coche ci-dessous les votes pour cette réponse. –