# Mude o idioma durante a conversa

As duas soluções apresentadas abaixo andam de mãos dadas para determinar qual é a língua favorita do usuário para interagir.

{% hint style="info" %}
Um bot que não tem nenhuma informação sobre a língua do usuário usará automaticamente o [idioma primário](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/nlp/multilanguage-bots#primary-vs.-extra-languages). A língua ativa dentro da conversa pode ser alterada dentro do fluxo.
{% endhint %}

{% hint style="danger" %}
Observe que o bot não consegue identificar a língua com base no que o usuário está dizendo. O que o bot pode fazer em vez disso é usar a informação do canal. No Facebook, por exemplo, o bot usará o valor que recebe da API de usuário do FB. Para o widget web, ele usará a língua do SDK.
{% endhint %}

## Ativar detecção de idioma

Você pode usar  [**Detecção de idioma**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/settings/settings#language-detection)  para verificar se a língua do usuário é suportada pelo seu bot. Se o seu bot não suporta a língua do usuário, redirecione a detecção de idioma para [um bloco que coleta a língua do usuário](#collect-the-users-preferred-language).

## Coletar preferredLanguage do usuário

{% hint style="warning" %}
A variável que armazena a língua preferida do usuário se chama `idiomaPreferido`. Você pode coletar e alterar essa variável de várias maneiras.
{% endhint %}

### Com botões

Para construir um fluxo com botões que coleta o `idiomaPreferido`:

1. Vá para seu canvas em [**Fluxos**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/bot-builder/flows).
2. Crie um [**Coletar entrada** ](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/buildabot/flow-logic/dialog-state/user-input-bot-dialog)bloco.
3. Dentro deste bloco, pergunte ao usuário em que língua ele gostaria de continuar, com botões correspondentes às línguas do seu bot.
4. Para cada botão, defina o `idiomaPreferido` **variável** com **valor** correspondente ao código da língua escolhida.

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FVMnTWiQl2M5BA53vcXwa%2FScreenshot%202024-09-03%20at%2010.47.43.png?alt=media&#x26;token=fdeec342-f14b-441a-a281-f36db0321fce" alt="" width="278"><figcaption></figcaption></figure>

5. Preencha a parte inferior com estas informações:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FUvX959YGLdKSXUbZXpN6%2FScreenshot%202024-09-03%20at%2010.49.53.png?alt=media&#x26;token=f7afc353-c3e7-4986-9009-cb6a2dec209f" alt="" width="276"><figcaption></figcaption></figure>

6. Clique **Salvar**.&#x20;

### Com uma intent

{% stepper %}
{% step %}
Vá para o seu [**Entidades**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/synonym-entities) aba.&#x20;
{% endstep %}

{% step %}
[Crie um **Entidade contextual**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/natural-language-processing-nlp/detect-information-with-entities/contextual-entities#add-contextual-entities) para a intent que irá acionar o fluxo para mudar a língua.

No exemplo abaixo, criamos uma entidade chamada **@language** para identificar as línguas que estão disponíveis no bot e definimos um valor para elas:

* `en` para Inglês
* `pt` para Português
* `es` para Espanhol

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FyUIx3ShnVbFOamfNFSLL%2Fimage.png?alt=media&#x26;token=866f18f1-715d-44a4-8372-acc695dbec8f" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
[Crie um **intenção**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/natural-language-processing-nlp/intents#add-a-new-intent) que irá acionar o fluxo para mudar a língua.

A intent deste exemplo se chama **mudar idioma** e está usando a entidade **@language**.

<div align="left"><figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2F4Rus52CDUx8Eb92GwSFr%2Fimage.png?alt=media&#x26;token=a731f87d-4370-4391-bf01-b839a7b138d1" alt=""><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}
[**Treinar** seu NLP](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/nlp/natural-language-processing-nlp/train-your-nlp).
{% endstep %}

{% step %}
Volte para o seu [**Fluxos**](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/navegacao/bot-builder/flows) e adicione sua **mudar idioma** intent ao canvas.
{% endstep %}

{% step %}
Faça com que a intent de mudar idioma vá para um **bloco de Condição** bloco que chamaremos **Ir para língua.**
{% endstep %}

{% step %}
Neste **bloco de Condição** bloco, construa condições para que sua `chave de idioma` variável vá para o próximo bloco com a nova língua definida como valor para a `idiomaPreferido` variável, como no exemplo abaixo:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2Fu8zN8unhlzZcvRvNISrT%2Fimage.png?alt=media&#x26;token=4a2b7de2-8f60-4fc2-8646-6b827da59163" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}
No final, seu fluxo deverá se parecer com algo assim:

<figure><img src="https://181262846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LLTwFwbOqJj4dDhg8Ju%2Fuploads%2FWAygZCrizFFU0nIqfZPB%2Fimage.png?alt=media&#x26;token=9c773759-8b98-482c-b64a-0acf7e575c8d" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

## Acionar uma língua com o canal Web

No widget web você pode acionar uma língua específica do bot com base na língua da página que o usuário está visualizando. Encontre mais informações sobre isso em [aqui](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/channels/all-channels/web/web-v2#set-to-a-specific-language)[.](https://docs.chatlayer.ai/chatlayer-documentation-pt-br/channels/all-channels/web/web-v2/web-v2-methods-and-options#change-the-language)
