Annonce

  •  » Trucs et astuces
  •  » Afficher un texte différent pour les non-anglophones

#1 2009-09-09 11:07:51

LucMorizur
Membre
Vienne (Isère, 38)
2009-03-01
1969

Afficher un texte différent pour les non-anglophones

Le plugin Extended Description permet (entre autres) de rajouter les balises [lang] dans nombre de champs de la partie administration (voir la description du plugin pour plus de détails), afin d'afficher un texte différent en fonction de la langue sélectionnée par/pour l'utilisateur. A l'attention de toutes les langues pour lesquelles on n'écrit pas un bloc spécifique, on peut utiliser le paramètre default :

[lang=default]
Welcome on my gallery
[/lang]
[lang=es]
Ola
[/lang]
[lang=fr]
Bienvenue sur ma galerie
[/lang]

Pour exprimer, par exemple, le regret de ne pas pouvoir proposer un texte dans la langue de l'utilisateur -- regret à exprimer dans une "langue par défaut", de fait ; et donc, a priori, en anglais --, on peut faire :

[lang=default]
I'm sorry, I don't know your language
Welcome on my gallery
[/lang]

[lang=en]
Welcome on my gallery
[/lang]

[lang=fr]
Bienvenue sur ma galerie
[/lang]

On voit que le texte "Welcome on my gallery" est à écrire deux fois. C'est ennuyeux surtout lorsque l'on a à le modifier, pour peu que ce soit un texte un peu long, il faut faire attention à bien appliquer les mêmes modifications aux mêmes endroits... etc.

En utilisant JavaScript, on peut faciliter la chose (merci à P@t pour ce truc) :

[lang=default]
<script type="text/javascript">
if (document.getElementsByTagName('html')[0].lang != 'en')
  document.write("Sorry, I don't know your language<br>");
</script>
Welcome on my gallery
[/lang]

[lang=fr]
Bienvenue sur ma galerie
[/lang]

Dans cet exemple ci-dessus, les francophones auront un texte en français ; les anglophones un texte en anglais ; et les autres non-anglophones auront le même texte en anglais que les anglophones, précédé d'un rajout en anglais.

En utilisant un "else", on peut même proposer un texte complètement différent pour chacun des deux cas (anglais sélectionné / autre langue sélectionnée) :

[lang=default]
<script type="text/javascript">
if (document.getElementsByTagName('html')[0].lang != 'en') {
  document.write("I don't know your language, but you're welcome as well !<br>");
}
else {
  document.write("Welcome on my gallery.<br>");
}
</script>
Let's introduce my pictures : (...)
[/lang]

Dans cet exemple ci-dessus (dans lequel je n'ai pas repris la partie francophone), une partie du texte est différenciée, et une partie ("Let's introduce my pictures") est commune.

On a le droit de le faire aussi souvent qu'on veut :

[lang=default]
<script type="text/javascript">
if (document.getElementsByTagName('html')[0].lang != 'en') {
  document.write("I don't know your language, but you're welcome as well !<br>");
}
else {
  document.write("Welcome on my gallery.<br>");
}
</script>
Here are some pictures of the holidays I had in Scotland.<br>
<script type="text/javascript">
if (document.getElementsByTagName('html')[0].lang != 'en') {
  document.write("It has been raining all the time, and I could not understand a single word any local people would say :-( !<br>");
}
else {
  document.write("It was very nice and the people were lovely :-) !<br>");
}
</script>
The pictures are not as sunny as I woul have liked, alas...
[/lang]

Dans l'exemple ci-dessus, un anglophone verra :

Welcome on my gallery.
Here are some pictures of the holidays I had in Scotland.
It was very nice and the people were lovely :-) !
The pictures are not as sunny as I woul have liked, alas...

Alors qu'un non-anglophone verra :

I don't know your language, but you're welcome as well !
Here are some pictures of the holidays I had in Scotland.
It has been raining all the time, and I could not understand a single word any local people would say :-( !
The pictures are not as sunny as I woul have liked, alas...

Dans les exemples utilisés, attention car tout le texte entre les balises [lang=default] et [/lang] est envoyé au navigateur (lorsque l'on est dans le cas indiqué par les balises bien sûr), si bien qu'il suffit à l'utilisateur d'"afficher le code source" pour voir tout votre code JavaScript. Heureusement les Ecossais ont beaucoup d'humour ;-) !

Enfin une dernière précision : avec document.write(), vous pouvez mettre tout le code HTML que vous voulez ; pensez seulement à bien utiliser les guillemets correctement :

document.write("Why did they laugh when I said : \" I'd love to live in Scotland \" ?");
document.write('Why did they laugh when I said : " I\'d love to live in Scotland " ?');

Les deux exemples ci-dessus sont corrects et équivalents et affichent :

Why did they laugh when I said : " I'd love to live in Scotland " ?

Dernière modification par LucMorizur (2009-09-10 21:46:38)

Hors ligne

  •  » Trucs et astuces
  •  » Afficher un texte différent pour les non-anglophones

Pied de page des forums

Propulsé par FluxBB

github twitter newsletter Faire un don Piwigo.org © 2002-2024 · Contact