2009-11-01 5 views
2

J'ai une application Web php multilingue, je une variable php qui peut dire la langue actuelle de l'application Web,messages d'alerte multilingues en JavaScript

Je dois valider les entrées utilisateur dans le côté client et les messages d'erreur sont présentés avec JavaScript alertes

par exemple, si la variable de langage php est « français », il me faut l'alerte comme « bonjour » si la variable de langage php est « anglais », je dois l'alerte comme « bonjour »

des idées

Répondre

1

Créez une sorte de dictionnaire/tableau pour chaque langue prise en charge et, en fonction de laquelle, incluez le fichier approprié ou crachez la partie correspondante dans le dictionnaire.

<?php $lang = 'fr'; ?> 
<script> 
messagesDictionary = { 
    en: { 
    message:'Hi' 
    }, 

    fr: { 
    message:'Bonjour' 
    } 

} 

alert(messagesDictionary['<?php echo $lang;?>']['message']); 
</script> 
+1

Ne serait-il préférable de stocker le côté serveur dictionnaire afin que le client n'a pas à télécharger un dictionnaire entier, y compris les messages qu'il ne sera jamais voir? – Tom

+0

Oui, ce serait. – Paul

9

Utilisez votre propre espace de noms

en.js

MyApp.lang = { 
    greeting: "Hello", 
    warning: "Attention" 
}; 

de.js

MyApp.lang = { 
    greeting: "Hallo", 
    warning: "Achtung" 
}; 

Utilisez comme alert(MyApp.lang.greeting) alors en fonction de votre variable php comprennent le droit .js fichier dans l'en-tête

+0

Merci pour votre solution – Ramji

1

La façon la plus simple de faire cette fonctionnalité est donnée à

var userLang = "<?php echo 'en-Us'; ?>"; 
var Langauges={ 

"en-US":{ 
"HelloWorld":'Hi this is Us English' 
}, 
"en-EG":{ 
"HelloWorld":'Hi this is en English' 
}, 
"en-AU":{ 

"HelloWorld":'Hi this is Au English' 
} 
} 

alert(Langauges[userLang]["HelloWorld"]) 
Questions connexes