Cette action permet d'afficher un texte ou du contenu selon la langue du visiteur.
Elle est surtout utilisée comme argument d'une option pour une autre action.
{up lang | fr=oui | gb=yes}
syntaxe 2 :
{up lang | lang-order=en-fr}
contenu anglais {====}
contenu français {/up lang}
syntaxe 3 :
{up lang}
retourne le meilleur code langue selon lang-order- lang: langue pour vérifer le rendu (vide en production)
- lang-order = en,fr: ordre de saisie des langues dans contenu
Style CSS
- tag: balise entourant le contenu retourné
- id: identifiant
- class: classe(s) pour bloc
- style: style inline pour bloc
- css-head (base-css): règles CSS définies par le webmaster (ajout dans le head)
Divers
- info: affiche la langue du navigateur et celle affichée
- http: utilise l'entête HTTP au lieu de Factory::getLanguage()
- Version 2.4
- Ajout options http et info
- seuls les 2 premiers caractères du tag langue sont pris en compte (en-US => en)
Exemple simple
Bonjour le monde !{up lang | en=Hello World! | fr=Bonjour le monde ! | de=Hallo, Welt!}
Avec ce shortcode, vous devez voir le message dans la langue de votre navigateur.
Si on indique un code langage comme argument principal de l'action, c'est cette langue qui sera utilisée et non celle du visiteur. J'utilise cette possibilité pour avoir plusieurs langue sur la même page. Ce qui est impossible en utilisation normale.
{up lang=de | en=Hello World! | fr=Bonjour le monde ! | de=Hallo, Welt!}
La langue est forcée sur l'allemand
{up lang=en | en=Hello World! | fr=Bonjour le monde ! | de=Hallo, Welt!}
La langue est forcée sur l'anglais
{up lang=it | en=Hello World! | fr=Bonjour le monde ! | de=Hallo, Welt!}
La langue demandée est l'italien. Comme elle n'est pas présente, on utilise la première langue : l'anglais
Comme argument d'une action
Pour la démonstration, je vais utiliser le même shortcode en forçant uniquement la langue
{up hr=i-love-up | icon-text=❤ {up lang | en=I love UP | fr=J'aime UP | de=Ich liebe UP }}
dans votre langue
en allemand
en italien (raté, donc en anglais)
Récupérer uniquement le code langue
Depuis la version 3.1, {up lang | lang-order=en,fr}
retourne le code de la langue qui convient le mieux pour le visiteur du site.
Sachant que par défaut, lang-order
est en,fr
cela permet d'utiliser cet ensemble de shortcodes pour afficher une image selon la langue du visiteur
{up html=img | src=images/image_{up lang}.png}
image_fr.png
sera utilisée pour un français et image_en.png
pour tous les autres
Avec des images
Très souvent, nous avons des images avec du texte. UP permet de choisir celle qui correspond à la langue en cours
Comme pour les exemples précédents, le shortcode sera le même :
<img src="/images/icons/48/{up lang=de | en=united-kingdom.png | fr=france.png | de=germany.png }">
dans votre langue
en allemand
en italien (raté, donc en anglais)
et n'importe quoi
Cette action retourne le texte brut. Il est donc possible de l'utiliser dans toutes les situations.
{up html=p | class=w50 {up lang | en=bg-orange | fr=bg-jaune} p1 bd-rouge tc}
ce texte est sur fond orange en anglais et fond jaune en français
{/up html}
ce texte est sur fond orange en anglais et fond jaune en français
Saisie wysiwyg
Si vous utilisez un éditeur comme JCE ou TinyMCE, il est possible d'utiliser cette action sans saisir de code.
Il suffit de mettre entre le shortcode ouvrant et fermant, chacune des langues en les séparant par le motif {===}. Le séparateur doit débuter par {=== et se terminer par une accolade. Ce séparateur est valide : {=== anglais }. Le texte est simplement ignoré.
Il est important de préciser l'ordre d'apparition des langues : lang-order=en,fr,de. L'action ne peut pas le deviner. Si le nombre de langues déclarées est différent de celui des alternatives, un message d'erreur est affiché.
Ci-dessous, un aperçu de la saisie avec TinyMCE et le code HTML correspondant
<div>{up lang | lang-order=en,fr,de}</div>
<div><img src="/images/icons/48/united-kingdom.png" alt="Anglais" /> Hello World!</div>
<div>{===== FR}</div>
<div><img src="/images/icons/48/france.png" alt="Français" /> Bonjour le monde</div>
<div>{===== DE}</div>
<div><img src="/images/icons/48/germany.png" alt="Germany" /> Hallo, Welt!</div>
<div>{/up lang}</div>
- http : la langue retenue sera celle définie par le navigateur. En l'absence de cette option, c'est la langue définie par le "language switcher" de Joomla qui est prise en compte.
- info : affiche un message avec le code langage à utiliser (voir http) et le code de la langue qui sera réellement utilisé en fonction des données passées à l'action
upactionslist (1) readmore (1) csv2def (1) lang (12) hr (3) html (1) div (1) jcontent-info (1)