Languages and Digital Assistants

You can develop both single-language and multi-language digital assistants. Though the majority of the language-related work is done in the digital assistant's skills, you also need to ensure that the digital assistant itself detects the user's language and presents welcome, help, disambiguation, and other messages in that language.

These are your high level options:

  • Create a single-language or multi-language digital assistant for skills that use Oracle Digital Assistant's native language support.

    In the digital assistant, you specify the target languages and then add skills that support those languages. When users initiate conversations in the digital assistant, the language is automatically detected and then used by the digital assistant for the duration of the conversation.

    For output, you define resource bundle entries for each language.

    See also Native Language Support for Skills.

  • Create a multi-language digital assistant based on a translation service, in which you:

    • Add a translation service.
    • Add skills that are set up with a translation service, are configured with the Detect Language component, and have their training data in English.
    • Optionally (but preferably), add resource bundles for one or more languages for the digital assistant's labels, prompts, and messages.

    See also Multi-Language Skills with Auto-Translation.

  • Create a non-English single-language digital assistant based on a translation service, in which you:

    • Add a translation service.
    • Add skills that are set up with a translation service, are configured with the Detect Language component, and have their training data in the target language of the skill and digital assistant.
    • Provide translations for the various output strings (using resource bundles or directly in the fields for the properties).

    See also Non-English Single-Language Skill Using a Translation Service.

Choosing Between Native Language Mode and Translation Service Mode

When you create skills and digital assistants, you can use either Oracle Digital Assistant's native language support or you can use a 3rd-party translation service. However, in each skill and digital assistant, you can only use one of those approaches. A skill can only be added to a digital assistant if it uses the same translation approach as the digital assistant

You will probably want to use the native support for languages if all of the languages that you are targeting are on the list of natively-supported languages. By using the native language support:

  • You can build the skills' and digital assistant's training model with data from all of your target languages. (When you use the translation service approach, you can only provide training data for the predominant language.)
  • You avoid paying a 3rd-party service for translation charges.
  • You don't need to give a 3rd-party service access to your skill's training data or text from the user conversations.

Use a translation service if you want to support any languages that are not supported natively.

Native Language Support in Digital Assistants

Starting with Platform Version 20.12, you can develop digital assistants with native language support. For such digital assistants, you don't need to use a 3rd-party translation service to handle user input and skill responses in those languages.

A digital assistant with native language support must contain skills with native language support. To learn about developing such skills, see Native Language Support for Skills.

Set Up a Digital Assistant in Native Language Mode

Here are the initial steps for setting up a digital assistant in Natively-Supported language mode:

  1. Click icon to open the side menu to open the side menu, select Development > Digital Assistants, and click New Digital Assistant.

  2. Complete the dialog, paying particular attention to these fields:
    • Platform Version: The platform version affects the behavior of your digital assistants, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.

      For the natively-supported language mode, you need to set this to 20.12 or higher.

      See Platform Version.

    • Primary Language: This determines both the default language for the digital assistant and whether the digital assistant will use native support for that language or rely on a translation service.

      In this field, you need to select one of the languages in the Natively-Supported section of the dropdown.

  3. If you need to add any additional languages to the digital assistant:
    1. In the left navigation of the newly created digital assistant, click the Settings icon.
    2. Click Add Language and select the language you want to add.

Complete and In-Progress Languages

In digital assistants based on Oracle Digital Assistant's native language support, the languages that you configure for the digital assistant should match the languages that are configured for the skills.

To help you monitor whether the languages configured for your skills and digital assistant are in alignment, a check is run whenever you add a language or a skill to the digital assistant and each language is marked as either Complete or In-Progress:

  • Complete languages are those in which each of the digital assistant's skills are configured for that language.
  • In-progress languages are those languages for which one or more skills are not configured.

You can find the list of complete and in-progress languages on the General tab of the digital assistant's Settings page (the Settings icon).

Note

It's also possible to add skills that are configured for a language that the digital assistant isn't configured for. These languages are not reflected on the digital assistant's Settings page.

Switch from a Translation Service to Native Language Support

If you want to take advantage of Oracle Digital Assistant native language support in a digital assistant that has already been configured to use a translation service, follow these general steps:

  1. For all of the skills in the digital assistant, create versions that use the native language support.

    See Create a Skill with Natively-Supported Languages.

    For the list of natively-supported languages, see Natively-Supported Languages. (If any of the languages that you want to support aren't on that list, you need to continue using translation service mode.)

  2. Create a new version or clone of the digital assistant.

    1. Click icon to open the side menu to open the side menu and select Development > Digital Assistants.

    2. In the tile for the digital assistant that you want to version or clone, click icon to open the Options menu and select Version or Clone.

    3. Fill in the required fields and click Create.
  3. Remove all of the skills from the new version or clone that you just created.

    This is necessary, because you can't create switch the digital assistant to use the native language support if it contains any skills that are in translation service mode.

  4. Create a new version or clone of that modified digital assistant, select Platform Version 20.12 or higher, and select the Natively-Supported language mode.

    With this step, you are able to preserve the configuration that you have done for the digital assistant, even though you have to handle the skills separately.

  5. Add the native-language support versions of the skills to the digital assistant.

Language Detection in Digital Assistants with Natively-Supported Languages

In digital assistants (or standalone skills) that use multiple natively-supported languages, the digital assistant can automatically detect the user's language at the beginning of the session. Here's how it works:

  • The language is automatically detected for digital assistants and skills that are configured with multiple natively-supported languages.
    • If there is only one (natively-supported) language in the digital assistant, language detection is turned off.
    • If the digital assistant uses a translation service, the translation service handles the language detection, not the digital assistant.
  • The language is not automatically detected if the digital assistant is accessed through a channel where the profile.languageTag or profile.locale variable has been set.
  • The language is detected in the first utterance of the conversation and not updated in the session, even if the user switches languages.
  • By default, the channel session last 7 days before it expires.

Digital Assistants with Translation Services

Set Up a Non-English Single-Language Digital Assistant in Translation Service Mode

Here are the initial steps for setting up a non-English single-language digital assistant in Translation Service language mode:

  1. Click icon to open the side menu to open the side menu, select Development > Digital Assistants, and click New Digital Assistant.

  2. Complete the dialog, paying particular attention to these fields:
    • Platform Version: The platform version affects the behavior of your digital assistants, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.

      If you are starting with a new digital assistant, you should select the most recent version available, since support for that version will last the longest.

      See Platform Version.

    • Primary Language: This field only appears if you have selected Platform Version 20.12 or higher.

      In this field, you need to select your target language in the Translation Service section of the dropdown.

      Caution:

      Be sure that you have selected from the Translation Service section. If you select from the Natively-Supported section, the digital assistant will only accept skills that use Natively-Supported mode.

      If this field doesn't appear, the language of the digital assistant is determined by the language of the first skill that you add to it. In this case, this language is referred to as the predominant language instead of the primary language.

Set Up a Multi-Language Digital Assistant in Translation Service Mode

Here are the initial steps for setting up a multi-language digital assistant in Translation Service language mode:

  1. Click icon to open the side menu to open the side menu, select Development > Digital Assistants, and click New Digital Assistant.

  2. Complete the dialog, paying particular attention to these fields:
    • Platform Version: The platform version affects the behavior of your digital assistants, such as the way the Natural Language Understanding (NLU) engine resolves intents and which languages are supported natively.

      If you are starting with a new digital assistant, you should select the most recent version available, since support for that version will last the longest.

      See Platform Version.

    • Primary Language: This field only appears if you have selected Platform Version 20.12 or higher.

      In this field, you need to select English in the Translation Service section of the dropdown.

      Caution:

      Be sure that you have selected from the Translation Service section. If you select from the Natively-Supported section, the digital assistant will only accept skills that use Natively-Supported mode.

      If this field doesn't appear, the language of the digital assistant is determined by the language of the first skill that you add to it. In this case, this language is referred to as the predominant language instead of the primary language.

Add a Translation Service to a Digital Assistant

  1. If you haven't done so already, configure a translation service for your Digital Assistant instance by:
    1. Clicking icon to open the side menu to open the side menu and selecting Settings > Translation Service.
    2. Clicking + Service.
    3. Entering the URL and Authorization token for the Microsoft Translator service or the Google Translation API in the Translation Services dialog.
    Refer to the documentation for Microsoft Translator and Google Translation API to find out how to get the URL and access token.
    Note

    To use the Google Translation API, you need to generate the API Key. You create this key from the GCP Console (APIs & services > Credentials). To find out more, see the Google Cloud Platform Documentation.
  2. Set the translation service in your digital assistant by:
    1. Clicking icon to open the side menu to open the side menu, selecting Development > Digital Assistants, and selecting your digital assistant.
    2. In the digital assistant's left navbar, clicking the Settings(the Settings icon) icon and selecting the General tab.
    3. Navigating to the Translation Service dropdown and selecting your translation service.

Enable Language Detection in Translation-Enabled Digital Assistants

By default, if a digital assistant is set up with a translation service, the digital assistant will detect the user's language in the same way that a skill with the Detect Language component does.

However, you also need to make sure that the skills in the digital assistant use the language that is detected by the digital assistant. When a skill is part of a digital assistant, the digital assistant translates user input into English and passes that translated English text to the skill. Therefore, by default, the skill's Detect Language component would detect English as the language and set the profile.LanguageTag variable to English, even though the user entered non-English text.

To prevent this switch back to English in a skill with a dialog flow developed in Visual mode, you need to set the Detect Language component's Existing Profile Language Tag property to True in each skill.

To prevent this switch back to English in a YAML-based skill, you need to add the following property to the Detect Language component in each skill:


      useExistingProfileLanguageTag: true

This ensures that the skill will honor the value of the profile.LanguageTag variable that is set by the digital assistant.

Here's an example of a skill's System.DetectLanguage component with the useExistingProfileLanguageTag set:

  detectLang:
    component: "System.DetectLanguage"
    properties:
      useExistingProfileLanguageTag: true
    transitions:
      ...
Note

You can add that property to all of your skills, even if they are not all used in a digital assistant. If the skill isn't part of a digital assistant, the property has no effect.

Translating Output Text

For user-visible text in a digital assistant that uses a translation service, you can use either of these translation approaches:

  • Use the translation service that is configured for the digital assistant.

    If you use this approach, you just need to have your output messages in English. No other configuration is needed. The translation service that you have configured will automatically translate any output messages to the user's language.

  • Use a resource bundle to translate the output messages yourself.
    Note

    For any output messages that don't have a reference to a resource bundle key, the translation service will be automatically used to translate the messages.

Explicit Invocation in Translated Digital Assistants

In digital assistants that use a translation service, explicit invocation of skills is recognized by the digital assistant in both the detected language and in English.

Conditions for Adding a Skill to a Digital Assistant

When you try to add a skill to a digital assistant, you are only offered skills that are compatible with the digital assistant. Here are the compatibility rules:

  • The skill and the digital assistant must both support its target languages in the same way (either natively or through a translation service).
  • For digital assistants that are created in Natively-Supported Language Mode, the skill needs to support all of the languages that are supported in the digital assistant.
    • If the skill supports more languages, the digital assistant will ignore those languages.
    • If the skill is published and supports only a subset of the digital assistant's languages, it can't be added.
    • If the skill is in draft mode, it can be added, even if it only supports a subset of the digital assistant's languages. However, you need to add any missing languages to the skill before you publish it.
Note

If you upgrade a digital assistant (whether through cloning, versioning, or rebasing) and change its language mode, the skills in the digital assistant will be disabled. To get those skills to work, you can replace them with versions that are configured with the same language mode of the digital assistant.

Resource Bundles for Digital Assistants

When you want to control the wording for your digital assistant’s responses in multiple languages, use resource bundles. You can provide resources bundles for as many languages as you need.

The process of translating with resource bundles consists of the following steps:

  • Identify the fields and properties that need to be translated.
  • Create resource bundle keys for any of those fields that don't already have them and provide values for the default language.
  • For each key, enter translated values in as many languages as you need.
  • For the fields and properties that you have provided translations for, enter references to the corresponding resource bundle key. For simple strings, use the following expression format (where rb is an identifier reserved for the resource bundle):
    ${rb.BundleKeyName}

    For properties that use variables, use the following expression format:

    ${rb('bundleKey', variableForParam0, variableForParam1)}

Translatable Strings in Digital Assistants

You can find the translatable strings in the following two places:

  • On the Skills (Skills icon) page of the digital assistant.

    Here you'll find the strings that are primarily used for the help cards that are displayed when a user asks for help in the digital assistant and when the digital assistant first greets the user.

    For each skill, you can translate
    • The One-sentence Description, Description, and Invocation fields.
    • The Example Utterances.
  • On the Settings (the Settings icon) page, within the Configurations tab, within the Conversation Parameters section. Starting in platform version 21.04, resource bundle entries are automatically created for these settings.

Create and Edit Resource Bundle Keys

Resource bundle keys are used to identify output text that needs to be translated and provide values in one or more languages. For digital assistants that use platform version 21.04 or later, keys are generated automatically for digital assistant's configuration settings. For other strings (and for configuration settings in digital assistants that are on platform version 21.02 or earlier), you need to create keys manually.

To create and populate resource bundle keys for a digital assistant:
  1. In the digital assistant's left navbar, click Resource Bundle icon..

  2. Click Add Bundle.

  3. In the Key field, enter a value that you can use to identify the field or property that it corresponds to.

    For example, if the key is for the first example utterance for a pizza skill, you could use something like PizzaSkillExampleUtterance1.

  4. Enter the text for the entry in the language that you want to use as the default language for the digital assistant. (The default language doesn't have to be in English. It's merely the language that is used for output messages if there are no translations for the detected language.)

    For skill-specific properties (such as Invocation and Example Utterances), you may wish to use the values inherited from the skills.

    For digital assistant conversation parameters (such as Acknowledgement Response), you may wish to merely use the default values for those properties if your digital assistant's default language is English.

    Note

    For properties that use system variables as parameters to do things like access the name of an intent or skill, use substitution codes ({0}, {1}, etc.) for the parameters. Then, in the property's reference to the bundle key, the given system variables can be specified.
  5. Optionally, fill in the Annotation field to help other developers understand what the string is for and where it is used.
  6. Click Create Entry.

  7. To add an additional language version of the string, click Add Language.

  8. In the Create Entry dialog, fill in the following fields and click Create.
    • Language—Add an IETF BCP 47 language tag like fr for French or de for German.

    • Text—The output string for that language.

    • Annotation —(Optional). Information to help other developers understand what the string is for and where it is used.

  9. For each additional string that you need to translate, create another entry by clicking Add Key and repeating steps 3 through 8.

Reference Resource Bundle Keys for Help Cards in a Digital Assistant

When a digital assistant welcomes the user or presents help information for the skills it contains, it uses values from the Skills page in the digital assistant to populate the welcome and help cards. You can translate the information that appears on these help cards by editing some of the fields on the Skills page.

  1. In the left navigation for the digital assistant, click Skills icon
  2. Select a skill.
  3. Update the One-sentence Description, Description, and Invocation fields with references to resource bundles in the form:
    ${rb.BundleKeyName}

    For example, you could use the following for a reference to a key for a pizza skill's one-line description.

    ${rb.PizzaSkillShortDescription}
  4. In the Examples section of the page, hover over an example, click its Edit icon, and replace the text with a reference to a resource bundle key as above.
  5. Repeat the previous step for the skill's other example utterances.
  6. Repeat the previous four steps for each skill.
Note

When you update the version of a skill in the digital assistant, you are presented with the Overwrite Interaction Model switch. If you keep this switch in the ON position, the values of the invocation and the example utterances will be updated with values set on the Digital Assistant tab of the updated skill's Settings page. This may mean you will need to translate the invocation and example utterances again.

Reference Resource Bundle Keys for Prompts and Messages

Digital assistants have a number of configuration properties which are used to display various prompts and messages.

To set the output for a configuration property, you reference the resource bundle context variable and message key. For example: ${rb('WhatType')}. You can also use dot notation, e.g.: ${rb.WhatType}

  1. In the digital assistant's left navbar, click the Settings (the Settings icon) icon and select the Configurations tab.

  2. For the properties within the Conversation Parameters section of the page, enter the references to resource bundle keys that you have defined for each of them.

    For example, if you have a key in your resource bundle called daAcknowledgementResponse for the Acknowledgement Response property, you would enter the following in the Acknowledgement Response field:

    ${rb('daAcknowledgementResponse')}
Note

Starting with Release 21.04, these resource bundle keys are generated automatically and the conversation parameters are set to reference these bundle keys.

System Variables in Resource Bundles

You can also use parameters in values for bundle keys, which enables you to make use of system variables in the output. For example, the default value of the Exit Flow Confirmation property is:

Exited ${system.routingFromIntent} in ${system.routingFromSkill}.

You can preserve the references to the system variables (in this case, system.routingFromIntent and system.routingFromSkill) in your translated responses by doing the following:

  1. In the value for the corresponding resource bundle key, insert {0}, {1}, etc. as substitution codes for each system variable. For example, in the English (or default) entry you create for the Exit Flow Confirmation property, you could use the following text:
    Exited {0} in {1}.
  2. Then, in the value of the property, enter the reference to the bundle key in the following format:
    ${rb('bundleKey', '${systemVariableForParam0}', '${systemVariableForParam1}')}

    For example, this is what it would look like for the Exit Flow Confirmation property (where daExitFlowConfirmation is the corresponding bundle key):

    ${rb('daExitFlowConfirmation', '${system.routingFromIntent}', '${system.routingFromSkill}')}

Export and Import Resource Bundles

You can export and import resource bundles in the form of a CSV file, which enables you to work with the bundles offline.

The CSV file needs to have the following columns:

  • languageTag
  • key
  • message
  • annotation

To export a CSV file with the existing resource bundle:

  • On the Resource Bundle page for your skill or digital assistant, click Export Resource Bundle icon to export a CSV file with the existing resource bundle.

    Even if you haven't yet added any keys to the resource bundle, a file with the required format of the CSV will be exported.

To import a resource bundle file:

  • On the Resource Bundle page for your skill or digital assistant, click Import Resource Bundle icon .

Resource Bundle Entries for Digital Assistant Configuration Settings

Starting with platform version 21.04, resource bundle entries are automatically created for digital assistant configuration settings. If your digital assistant is based on platform version 21.02 or earlier, you can upgrade to 21.04 or higher to have these entries generated for you.

Here is a list of all of the system resource bundle entries for digital assistants along with their default values.

Resource Bundle Entry Default English Text Entry Description
systemConfiguration_autoNumberPrefixes 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 The prefixes used for auto-numbering postback action labels.
systemConfiguration_autoNumberPrefixSeparator . The separator used between the number prefix and the postback action label.
systemConfiguration_conversationAnswerContinue No, continue based on my previous response The label for the answer 'continue'.
systemConfiguration_conversationAnswerNo No The label for the answer 'no'.
systemConfiguration_conversationAnswerTryAgain No, try again The label for the answer 'try again'.
systemConfiguration_conversationAnswerYes Yes The label for the answer 'yes'.
systemConfiguration_conversationEventInterruptPrompt You have just received a notification from {0}. Would you like to switch to it? The prompt to display when a notification interrupts a flow.
systemConfiguration_conversationExitFlowConfirmation Exited {0} in {1}. The confirmation message to display when exiting a flow in skill.
systemConfiguration_conversationExitHiddenFlowConfirmation Exited. The confirmation message to display when exiting a flow in a skill that is not exposed.
systemConfiguration_conversationExitPrompt Do you want to exit {0} in {1} now? The prompt to display before exiting a flow.
systemConfiguration_conversationExitSkillConfirmation Exited {0}. The confirmation message to display when exiting a skill.
systemConfiguration_conversationExplicitSkillPrompt This will exit current conversation. Do you want to go to {0} now? The prompt to display when exiting current conversation to go to a new skill due to explicit invocation.
systemConfiguration_conversationFlowSelectionPrompt Do you want to go to: The prompt to display a list of flows to choose from.
systemConfiguration_conversationFlowSelectionValue {0} in {1} The flow name to display as a selection.
systemConfiguration_conversationHelpNoSkillPrompt You don't have any skills registered yet. Register one or more skills so that you can see the digital assistant in action. The prompt to display when no skill bot is registered.
systemConfiguration_conversationHistoryActionDisabledPrompt Sorry, this choice is no longer available. Message to display when a user clicks on a choice in the conversation history when the Enable Clicking History Actions setting is not enabled.
systemConfiguration_conversationHistoryActionInvalidPrompt Sorry, this choice is no longer available. Message to display when a user clicks on a choice in the conversation history that can no longer be processed.
systemConfiguration_conversationInterruptMessage Switching to {0} in {1} now. The message to display when a flow is interrupted to start a new flow when user is not prompted.
systemConfiguration_conversationInterruptPrompt Do you want to switch to {0} in {1} now? The prompt to display when interrupting a flow to start a new flow.
systemConfiguration_conversationInterruptToUnMatchedFlowPrompt No match found in {0}. Do you still want to switch to it? The prompt to display when interrupting a flow to go to a different skill but that skill doesn't have a matching flow. This might happen when a user interrupts a flow with input that contains an explicit invocation, but with a phrase that doesn't match an intent in the invoked skill.
systemConfiguration_conversationNoMatchPrompt No matches were found. Here are some things you can do: The prompt to display (before the help card) when no matches were found.
systemConfiguration_conversationNothingToExitPrompt There's nothing to exit. You don't have any requests in progress. The prompt to display when not in a skill context and the built-in exit intent is invoked.
systemConfiguration_conversationOdaAck Okay A simple acknowledgement bot message.
systemConfiguration_conversationOdaExitFlowSelection Exit conversation The label for the option to exit the flow.
systemConfiguration_conversationOdaExitSkillSelection Exit {0} The label for the option to exit the skill.
systemConfiguration_conversationOdaHelpCardDetailFooter Enter the number prefix to execute the action of your choice, or enter '0' to go back to the skill list. The footer for the skill's card detail when optimization of help card rendering for text-only channels is enabled.
systemConfiguration_conversationOdaHelpCardDetailHeader Here are some sample actions: The header for the skill's card detail when optimization of help card rendering for text-only channels is enabled.
systemConfiguration_conversationOdaHelpCardListFooter Enter skill number to see sample actions supported by the skill. The footer for the skill's card list when optimization of help card rendering for text-only channels is enabled.
systemConfiguration_conversationOdaHelpNextPrompt Show more Help show more skills prompt.
systemConfiguration_conversationOdaHelpPrompt Welcome! Here are some things you can do: The help message to display above the help card.
systemConfiguration_conversationOdaNoneOption None of the above Label of the None of the above option in case of multiple flow matches.
systemConfiguration_conversationQnaLabel Ask Question The label for Q & A action.
systemConfiguration_conversationResumeMessage Resuming {0} in {1} now. The message to display when an interrupted flow is resumed.
systemConfiguration_conversationResumePrompt Do you want to resume {0} in {1} now? The prompt to display when resuming an interrupted flow.
systemConfiguration_conversationSkillExitOnHelp Exit conversation and view assistant help The label for the option to exit a skill and display the digital assistant help card.
systemConfiguration_conversationSkillHelpPrompt You are at {0}. Here are some things you can do: The help message to display for a skill bot above the help card.
systemConfiguration_conversationSkillViewHelpAgain View current skill help again The label for the option to display a skill's help card again.
systemConfiguration_conversationSkillWelcomeFlowSelection Welcome The label for the option to go to the welcome state.
systemConfiguration_conversationSkillWelcomePrompt Welcome to {0}. The welcome message to display for a skill bot.
systemConfiguration_conversationStartMessage Starting {0} in {1} now. The message to display before the start of a flow.
systemConfiguration_conversationStartPrompt Do you want to start with {0} in {1} now? The prompt to display before the start of a flow.
systemConfiguration_errorExpiredSessionPrompt Your session has expired. Please start again. The message when the session has expired.
systemConfiguration_errorMaxStatesExceededPrompt Your session appears to be in an infinite loop. The message when the bot appears to be in an infinite loop.
systemConfiguration_errorUnexpectedErrorPrompt Oops I'm encountering a spot of trouble. Please try again later... The message when there is an unexpected error.
systemConfiguration_internalWelcomeMessage help The internal message sent to the digital assistant when a channel handles the event that a new user has gotten access to the digital assistant. The reply to the internal message is sent as welcome message to the new user.
systemConfiguration_oauthCancelPrompt Authentication canceled. The message when OAuth authorization is canceled.
systemConfiguration_oauthSuccessPrompt Authentication successful! You can return to the conversation. The message when OAuth authorization succeeds.

Sample Resource Bundle Entries

If you'd like to use resource bundle entries for your configuration settings without upgrading the platform version of the digital assistant to 21.04 or higher, here's a list of the customization properties that you can translate along with suggested names for the bundle keys and the expressions you'd use to reference those bundle keys from the fields for the properties.

Property to Be Translated Suggested Name for Bundle Key Default English Text Expression to Reference Bundle Key
Acknowledgement Response systemConfiguration_conversationAcknowledgementResponse Okay ${rb.daAcknowledgementResponse}
Answer No systemConfiguration_conversationAnswerNo No ${rb.daAnswerNo}
Answer Yes systemConfiguration_conversationAnswerYes Yes ${rb.daAnswerYes}
Digital Assistant Exit Flow in Selection systemConfiguration_conversationExitFlowInSelection Exit conversation ${rb.daExitFlowInSelection}
Digital Assistant Exit Skill in Selection systemConfiguration_conversationExitSkillInSelection Exit {0} ${rb('daExitSkillInSelection', '${system.routingFromSkill}')}
Exit Current To Go to New Skill Prompt systemConfiguration_conversationExitCurrentToGoToNewSkillPrompt This will exit current conversation. Do you want to go to {0} now? ${rb('daExitCurrentToGoToNewSkillPrompt', '${system.routingToSkill}')}
Exit Flow Confirmation systemConfiguration_conversationExitFlowConfirmation Exited {0} in {1}. ${rb('daExitFlowConfirmation', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Exit Prompt systemConfiguration_conversationExitPrompt Do you want to exit {0} in {1} now? ${rb('daExitPrompt', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Exit Skill Confirmation systemConfiguration_conversationExitSkillConfirmation Exited {0}. ${rb('daExitSkillConfirmation', '${system.routingFromSkill}')}
Flow Information in Selection systemConfiguration_conversationFlowInformationInSelection {0} in {1} ${rb('daFlowInformationInSelection', '${system.routingToIntent}', '${system.routingToSkill}')}
Flow Selection Prompt systemConfiguration_conversationFlowSelectionPrompt Do you want to go to: ${rb.daFlowSelectionPrompt}
Help Cards - Skill Detail Footer systemConfiguration_conversationHelpCardsSkillDetailFooter Enter the number prefix to execute the action of your choice, or enter '0' to go back to the skill list. ${rb.daHelpCardsSkillDetailFooter}
Help Cards - Skill Detail Header systemConfiguration_conversationHelpCardsSkillDetailHeader Here are some sample actions ${rb.daHelpCardsSkillDetailHeader}
Help Cards - Skill List Footer systemConfiguration_conversationHelpCardsSkillListFooter Enter skill number to see sample actions supported by the skill. ${rb.daHelpCardsSkillListFooter}
Help Show more prompt systemConfiguration_conversationHelpShowMorePrompt Show more ${rb.daHelpShowMorePrompt}
History action disabled prompt systemConfiguration_conversationHistoryActionDisabledPrompt Sorry, this choice is no longer available. ${rb.daHistoryActionDisabledPrompt}
Interrupt Message systemConfiguration_conversationInterruptMessage Switching to {0} in {1} now. ${rb('daInterruptMessage', '${system.routingToIntent}', '${system.routingToSkill}')}
Interrupt Prompt systemConfiguration_conversationInterruptPrompt Do you want to switch to {0} in {1} now? ${rb('daInterruptPrompt', '${system.routingToIntent}', '${system.routingToSkill}')}
Interrupt To Unmatch Flow Prompt systemConfiguration_conversationInterruptToUnmatchFlowPrompt No match found in {0}. Do you still want to switch to it? ${rb('daInterruptToUnmatchFlowPrompt', '${system.routingToSkill}')}
Invalid History Action Message systemConfiguration_conversationInvalidHistoryActionMessage Sorry, this choice is no longer available. ${rb.daInvalidHistoryActionMessage}
Label for Q & A systemConfiguration_conversationLabelForQnA Ask Question ${rb.daLabelForQnA}
No Matches Were Found Prompt systemConfiguration_conversationNoMatchesWereFoundPrompt No matches were found. Here are some things you can do: ${rb.daNoMatchesWereFoundPrompt}
No Skill Bot Prompt systemConfiguration_conversationNoSkillBotPrompt You don't have any skills registered yet. Register one or more skills so that you can see the digital assistant in action. ${rb.daNoSkillBotPrompt}
None of the above systemConfiguration_conversationNoneOfTheAbove None of the above ${rb.daNoneOfTheAbove}
Nothing to Exit Prompt systemConfiguration_conversationNothingToExitPrompt There's nothing to exit. You don't have any requests in progress. ${rb.daNothingToExitPrompt}
Notification Interrupt Prompt systemConfiguration_conversationNotificationInterruptPrompt You have just received a notification from {0}. Would you like to switch to it? ${rb('daNotificationInterruptPrompt', '${system.routingToSkill}')}
Resume Message systemConfiguration_conversationResumeMessage Resuming {0} in {1} now. ${rb('daResumeMessage', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Resume Prompt systemConfiguration_conversationResumePrompt Do you want to resume {0} in {1} now? ${rb('daResumePrompt', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Skill Bot Exit-On-Help Label systemConfiguration_conversationSkillBotExitOnHelpLabel Exit conversation and view assistant help ${rb.daSkillBotExitOnHelpLabel}
Skill Bot Help Prompt systemConfiguration_conversationSkillBotHelpPrompt You are at {0}. Here are some things you can do: ${rb('daSkillBotHelpPrompt', '${system.routingFromSkill}')}
Skill Bot View Help Again Label systemConfiguration_conversationSkillBotViewHelpAgainLabel View current skill help again ${rb.daSkillBotViewHelpAgainLabel}
Skill Welcome Flow in Selection systemConfiguration_conversationSkillWelcomeFlowInSelection Welcome ${rb.daSkillWelcomeFlowInSelection}
Start Message systemConfiguration_conversationStartMessage Starting {0} in {1} now. ${rb('daStartMessage', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Start Prompt systemConfiguration_conversationStartPrompt Do you want to start with {0} in {1} now? ${rb('daStartPrompt', '${system.routingFromIntent}', '${system.routingFromSkill}')}
Skill Bot Welcome Prompt systemConfiguration_conversationSkillBotWelcomePrompt Welcome to {0}. ${rb('daSkillBotWelcomePrompt', '${system.routingFromSkill}')}
Expired Session Error Prompt systemConfiguration_conversationExpiredSessionErrorPrompt Your session has expired. Please start again. ${rb.daExpiredSessionErrorPrompt}
Max States Exceeded Error Prompt systemConfiguration_conversationMaxStatesExceededErrorPrompt Your session appears to be in an infinite loop. ${rb.daMaxStatesExceededErrorPrompt}
OAuth Cancel Prompt systemConfiguration_conversationOAuthCancelPrompt Authentication canceled. ${rb.daOAuthCancelPrompt}
OAuth Success Prompt systemConfiguration_conversationOAuthSuccessPrompt Authentication successful! You can return to the conversation. ${rb.daOAuthSuccessPrompt}
Unexpected Error Prompt systemConfiguration_conversationUnexpectedErrorPrompt Oops I'm encountering a spot of trouble. Please try again later... ${rb.daUnexpectedErrorPrompt}