Engati - User Guide
Building Your Bot

Enabling Multiple Languages

18min

Engati provides a number of capabilities to assist you in building and managing your bots in multiple languages as well as just for non-English languages. These capabilities span across the various key components of the platform, namely FAQs and Intents which drive the NLP behaviour as well as the paths or the conversational flows.

Some of the key aspects of these capabilities are –

  • Tagging FAQs for NLP: You can tag and associate FAQs and Intents to a particular language to better manage them as well as use the NLP models specific to the language. The user’s queries are also resolved to keep the language factor in mind.
  • Localize Messages in Conversation Flows (Paths): Building different paths for different languages is not needed at all since now you can just build a single path/flow and add the strings for the different languages you are supporting.
  • Localize Settings Messages: Similar to the user-facing messages for the respective languages, even the settings, and configurations would be managed by the language properties files. This includes, among others, the bot’s name itself, various messages for configurations like user feedback, other fixed messages like writing a message, etc. This will allow the user the option to customize these as well as have different messages in different languages.
  • Synonyms & Stopwords for Languages: You can also have separate sets of synonyms and stopwords based on language which are picked up appropriately by the system.

Using Localization in Engati

Availability

Multilingual capability is present in our Professional and above plans.

Enabling Localization for your Chatbot

Step 1: Navigate to Configure > Languages and click on "Enable".

Document image


Step 2: Click on "+Add New Language" and from the dropdown menu select the language.

Step 3: Once you are done selecting the language, Click on "Add Language".

After the setup is completed, you can see the screen where the languages are available. Also, the strings for the various paths and settings of the bots are managed in this section.

The bot has a default language that it uses to fall back for missing strings for other languages as well as for the FAQs/Intent lookups. The default language initially would be set as English which can be changed. We will understand the significance of the default language in more detail in a later section.

Add the other languages which you want to support in the bot using the Add New button.

Uploading Keys: Managing localized messages

All Messages from the Conversation Flow Modeler or various Bot Configurations, are identified & referred to as Keys.

Document image


To make your bot communicate in different languages on Engati:

Step 1: In Configure > Language, download the key files for each language you want to translate to. Start with the English key as your reference.

Document image


Step 2: Open the English key file and manually translate all of the text values into the desired language. Make sure to translate all of the bot's responses and phrases.

Document image


Step 3: Save your translated file separately as this contains the translated key content.

Step 4: Back in the Engati platform, upload each translated key file in the configuration area for its language.

Step 5: With the translated keys uploaded, your bot can now understand and converse in multiple languages based on the user's selected preferences.

Step 6: Repeat this process to add additional languages as needed to make your bot multilingual.

Note: Characters \\ and \\” are not supported in the uploaded properties file. Customers are requested not to use these characters and ensure the above characters are not present in the properties file. Upload history will show an error in case these characters are present in the uploaded file. Emojis and Unicode characters aren’t supported as part of localisation, we would suggest not using them in the path names, flow names or node names as it might have certain inconsistencies.

FAQs & Intent

In the earlier section, we saw how to set up the language feature as well as manage the messages for the paths and settings by using the keys in the properties file. Now we will focus on the FAQs and Intents.

As highlighted earlier, FAQs can be associated with a language. Hence, you can have multiple sets of FAQs, each corresponding to the languages you are supporting.

In the following steps, we are going to learn how to add FAQs for the bot which supports two languages.

  • Go to the FAQ workflow from the Build section.
  • Click on ADD FAQ for adding the queries and their variations
  • Select the language you want to associate the particular FAQ set with.
  • Enter the query including the variations and their response and click on ADD. The FAQ will be added and tagged to the language.
Document image


Bot behaviour for resolving queries

When a user asks a query, it will look up the FAQs stored in the user’s selected language (which is set via the ‘Select Language node’, explained later). It will also additionally look up the FAQs that are associated with the bot’s default locale (if they are different).

Note: In case the bot supports only 2 languages, the NLP engine would look through both the languages irrespective of the user’s selected language or the bot’s default language.

Control the user flow

After the translated files are set up for the paths and the FAQs are added in the respective languages, we will now learn how the user can change the language or how to determine and set the user’s language.

The Select Language node is provided to facilitate the setting of a language in the path.

Document image


Define a flow and use the node that allows the user to switch to their desired language.

Once this node is encountered, all the nodes/paths after this node would be displayed in a particular language which is selected here. Also, the NLP engine would consider it as the set language for the user which it would use to determine the response.

Document image


Default Language

The default language is the language which your bot initially displays. By default, it is set to English. The bot at any time would have one language which is selected as the default. This is used as a fallback language as well in case the user’s language is not set or defined.

Changing the default language

This default language can be changed by toggling the radio button for a particular language. There are two modes that are supported for changing the default language with different behaviours for each.

The first option is where you can associate the existing FAQs of your bot to the new default language and copy over the missing strings of the original default language to the new one.

The other mode doesn’t do any additional processing of the FAQs or strings and keeps them as is.

Notes -

  • This essentially becomes migrating from the old to the new default language and is recommended to be used especially for cases where the localization is set up for the first time and the language needs to be updated to the new one.
  • You should make sure that all the necessary strings of your bot are added/updated for the default language as it may result in users seeing the keys in place of missing values.

Additional things to know regarding Localization

  • Business plan users who are using the Stopwords and Synonyms feature can segregate these into the supported languages and they will be picked up appropriately based on the user and bot settings
  • There would be no changes in language for the entities, they will continue to be language-agnostic and can be managed by having multiple values in the same entity or creating multiple entities for each language and associating them with the relevant language FAQs.
  • The FAQ upload via CSV would also support a new column that would specify the language association of the FAQs. The values of the language fields should be the ISO639-1 code for the language.
  • The Train workflow would also support specifying the language. The only exception would be when selecting from close matches or via search, the language of the original FAQ trained would continue to be applicable. Also, interaction history would show the language from which the query was matched as well via tags.

Best Practices for building multi-lingual bots

1. Easily change the language

Make it super easy for the bot user to get to the options for changing languages. If you are very sure of their configurations, you can use the Select Language node for doing it as well as control it via the attributes.

If you are not sure of their preferences, present the options for selecting language upfront. You should also have FAQs set up to enable changing/switching languages in all the languages you are supporting, especially the default language since that would be looked up to always.

2. Multi-language instructions

Make sure to add the messages for changing the language in all the languages you are supporting. This fact goes for any greeting or introductory messages as well which are meant to be generic/language-agnostic. Also, at least the most common keywords/actions, FAQs should be ideally supported for all the languages for a seamless experience for everyone.

3. No missing values

Make sure to review all the strings/messages for all the language you have added to check if anything is missing and if everything is correct, including the settings and default values. The user experience would be severely affected if the end-user sees keys instead of messages from the bot

4. Avoid using special characters

Special characters like *, “”,^.$,# throw an error for some languages. Adding them to the key will lead to an error while localizing a bot. Also while creating attributes n needs to add ‘{{‘ in the key, again it will give erroneous output.

5. Language not supported

If the language you are supporting isn’t on the list of supported languages, you can select the closest one similar to the language and add your FAQs and path messages. You can choose to leave it as English as well and the default matching rules engine would be applicable in that case.

6. Languages Supported  

The following is the list of 52 languages we support at present

  1. Arabic
  2. Bengali
  3. Bulgarian
  4. Burmese
  5. Chinese
  6. Catalan
  7. Croatian
  8. Czech
  9. Danish
  10. Dutch
  11. English
  12. Estonian
  13. Filipino
  14. Finnish
  15. French
  16. German
  17. Greek
  18. Gujarati
  19. Hebrew
  20. Hindi
  21. Hungarian
  22. Indonesian
  23. Italian
  24. Javanese
  25. Japanese
  26. Kazakh



27. Kannada 28. Korean 29. Malay 30. Malayalam 31. Marathi 32. Mongolian 33. Nepali 34. Norwegian 35. Persian 36. Polish 37. Portuguese 38. Punjabi 39. Pushto 40. Romanian 41. Russian 42. Slovak 43. Somali 44. Spanish 45. Swedish 46. Tamil 47. Telugu 48. Thai 49. Turkish 50. Ukrainian 51. Urdu 52. Vietnamese



References

  • NLP: Learn more about how to train your bot using Engati’s proprietary NLP Engine
  • Conversation Flow Modeler: Learn more about how to build conversation flows
  • Synonyms & Stopwords: Learn more about how Engati handles synonyms and stopwords as well as options for you to update these for your bot

If you face any issues or queries please reach out to us at [email protected].