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.
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
| Variable | Type | Condition | Exemple | Description |
|---|---|---|---|---|
| locale | string | requis | locale: "fr" | Langue affichée au démarrage du Smart Agent. Elle doit faire partie des valeurs listées dans availableLocales. |
| availableLocales | string[] | optionnel | availableLocales: ["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. |
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 |
|---|---|
| bouton | Appelez 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>
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.
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é | Type | Description |
|---|---|---|
| detail.locale | string | La langue nouvellement sélectionnée. |