Expert prestashop

Gérer plusieurs langues avec dojo

Voici un petit tutoriel pour vous expliquer comment utiliser « requireLocalization » de Dojo pour un site en plusieurs langues.

1. Création des fichiers langues

La première étape consiste à créer les fichiers langues et à les placer dans les bons dossiers. Pour notre exemple le site ne comportera que deux langues: l’Anglais et le Français.

- Dans le dossier « dojo » créez un dossier nommé « langue » puis un sous dossier « nls » puis enfin un sous dossier par langue c’est à dire « en » et « fr » dans notre cas.

- Dans chaque dossier « nls », « en » et « fr » vous devrez placer un fichier « langue.js »

Les fichiers « langue.js » contenus dans les dossiers « en » et « fr » seront respectivement utilisés pour les visiteurs anglophone et francophone, tandis que le fichier « langue.js » placé dans le dossier « nls » sera le fichier langue par défaut. C’est à dire celui qui sera utilisé si aucune langue n’est détectée.

2. Modification du djConfig

Maintenant il faut préciser à dojo la langue utilisée, vous avez pour cela deux possibilités: soit vous laissez dojo  détecter la langue du navigateur, soit vous l’indiquez directement lors du chargement de dojo.

Pour ma part je préfère utiliser la seconde méthode. Pour cela il suffit de préciser lors de l’appel de dojo la langue utilisée dans l’attribut « djConfig ».


<script type="text/javascript" src="dojo/dojo/dojo.js" djConfig="parseOnLoad: true, locale:'fr'"></script>

Il faut ici préciser la langue entre les guillemets ‘fr’ pour français ‘en’ pour anglais. Cela correspond aux dossiers que vous avez précédemment créés dans ‘dojo/langue/nls’.

3. dojo.requireLocalization et dojo.i18n

Il faut maintenant demander à dojo de prendre en compte la localisation afin de charger le bon fichier de langue. Il suffit pour cela de rajouter (après avoir charger dojo bien sûr) les lignes suivantes.


dojo.require("dojo.i18n");
dojo.requireLocalization("langue", "langue");

Pour « requireLocalization » le premier argument sera le nom du dossier que vous avez créé dans « dojo ». Le second argument sera le nom du fichier à appeler (sans l’extension « .js »). C’est ce qui permettra à dojo de savoir où trouver le fichier langue adéquate.

Il cherchera donc le fichier « langue.js » dans « dojo/langue/nls » (« nls » étant ajouté automatiquement par dojo) et dans le dossier correspondant à la langue de l’utilisateur.

A noter: Il est important que les dossiers de langue (« en », « fr »,etc..) correspondent à la localisation indiquée dans « djConfig ».

4. Contenu des fichiers langues

Il faut maintenant remplir vos fichiers langues avec vos différents termes. Nous allons ici n’en ajouter que deux mais vous n’aurez bien évidemment aucune limite à ce niveau.

Contenu du fichier « langue.js » du dossier « fr »


({
bonjour:"Bonjour",
toi:"toi",
})

Contenu du fichier « langue.js » du dossier « en »


({
bonjour:"Hello",
toi:"you"
})

Pour le fichier « langue.js » contenu dans le dossier « nls » je vous propose de copier la même chose que pour le fichier compris dans le dossier « fr ». Nous considérerons ainsi que la langue par défaut sera le français.

5. Création et utilisation de l’objet « lang »

Maintenant que tout est prêt, vous pouvez utiliser vos différents fichiers de langue.

Voici une petite fonction pour tester tous ça:


function testLangue() {
var lang = dojo.i18n.getLocalization("langue", "langue");
alert(lang.bonjour+" "+lang.you);
}

Et voila il ne vous reste plus qu’à lancer cette fonction en faisant varier à chaque fois la localisation dans « djConfig » pour constater que le texte de l’alerte change.

Partager cet article:
    
            

Laisser un commentaire