Aller au contenu principal

Multilingue

Le Smart Agent peut être affiché dans plusieurs langues. Cette section explique comment déclarer les langues disponibles et comment changer la langue affichée depuis votre propre interface.

info

Le comportement multilingue ne s'applique qu'aux bots multilingues. La liste des langues réellement prises en charge par votre bot est configurée dans Smart Dashboard par votre Account Manager.

Configuration

Deux options d'init contrôlent les langues du Smart Agent :

  • locale — la langue affichée au démarrage du Smart Agent.
  • availableLocales — la liste des langues vers lesquelles vous autorisez le Smart Agent à basculer.
<script type="text/javascript">
window.addEventListener('STSmartBotLoaded', function (e) {
e.detail.init({
botId: 'xxx',
locale: 'fr',
availableLocales: ['fr', 'en'],
});
});
</script>
<script
type="text/javascript"
async
src="https://assets.app.smart-tribune.com/smart-tribune/SmartBot/smartbot.main.js"
></script>

Liste des variables

VariableTypeConditionExempleDescription
localestringrequislocale: "fr"Langue affichée au démarrage du Smart Agent. Elle doit faire partie des valeurs listées dans availableLocales.
availableLocalesstring[]optionnelavailableLocales: ["fr","en"]Liste des langues vers lesquelles vous autorisez le Smart Agent à basculer. Si omise, elle vaut [locale]. La locale active doit faire partie de cette liste.
attention

La correspondance entre locale et availableLocales est exacte — aucune normalisation n'est effectuée. "fr" et "fr_FR" sont considérées comme deux langues différentes ; veillez donc à utiliser la même notation dans les deux options.

Changer de langue

Déclenchez le changement de langue depuis votre propre interface (par exemple un sélecteur de langue déjà présent sur votre site) en appelant la fonction setLocale() exposée sur l'objet API du Smart Agent.

Depuis un...Description
boutonAppelez simplement la fonction setLocale() avec le code de la langue cible.
<button onclick="window.stSmartBot.setLocale('en')">English</button>
<button onclick="window.stSmartBot.setLocale('fr')">Français</button>

Pour rendre setLocale() accessible en dehors du script de chargement (sur un bouton, par exemple), stockez l'objet API sur window qui est une variable globale :

<script type="text/javascript">
window.addEventListener('STSmartBotLoaded', function (e) {
window.stSmartBot = e.detail;
window.stSmartBot.init({
botId: 'xxx',
locale: 'fr',
availableLocales: ['fr', 'en'],
});
});
</script>
<script
type="text/javascript"
async
src="https://assets.app.smart-tribune.com/smart-tribune/SmartBot/smartbot.main.js"
></script>
remarque

setLocale() est ignorée (et un avertissement est consigné dans la console) lorsque :

  • la langue demandée ne fait pas partie de availableLocales, ou
  • la langue demandée est déjà la langue active.

Comportement lors du changement de langue

L'appel à setLocale() réinitialise la conversation en cours. Le dialogue repart du début dans la langue nouvellement sélectionnée ; les messages de deux langues différentes ne sont donc jamais mélangés au sein d'une même conversation.

attention

Informez vos visiteurs que changer de langue redémarre la conversation, afin qu'ils ne perdent pas le fil d'un échange en cours de manière inattendue.

Événements

STSmartBotLocaleChanged

Émis sur window à chaque changement de langue réussi via setLocale(). Son detail contient le code de la nouvelle langue.

<script type="text/javascript">
window.addEventListener('STSmartBotLocaleChanged', function (e) {
console.log('Langue du Smart Agent changée pour :', e.detail.locale);
});
</script>
PropriétéTypeDescription
detail.localestringLa langue nouvellement sélectionnée.