Your Alexa Dashboards Settings

Develop Skills in Multiple Languages

You can use the Alexa Skills Kit to create skills in multiple languages. A skill can support a single language, or any combination of the available languages:

  • English (Australia)
  • English (Canada)
  • English (India)
  • English (UK)
  • English (US)
  • German
  • Japanese

Users who interact with Alexa in a particular language can use skills that support that language. For example, a user might set their Alexa device to use German. That user can enable and use any published skills available in their region that support German.

High-Level Steps

This document covers multiple-language custom skills. For details about smart home skills, see Develop Smart Home Skills in Multiple Languages.

See the sections below for details about these steps.

  1. Design a voice user interface for the language you want to support. The voice user interface includes:
    • The skill invocation name
    • Intent schema
    • Sample utterances
    • Custom slot type values

    See Design the Voice User Interface for Each Language Your Skill Supports.

  2. Include logic in your code to check incoming requests (IntentRequest, LaunchRequest, and SessionEndedRequest) for the user’s language and respond in the correct language. For example, if the user launched your skill in German, your skill should return German text to speech that Alexa can speak to the user.

    See Implement Code Changes.

  3. Deploy your updated code to the relevant endpoints:
    • You can use multiple endpoints: North America, Europe, India, or a combination of all three.
    • If you choose to deploy your code to multiple endpoints, you must maintain the same code at all endpoints. The code must handle all languages you support, as noted in the previous step.

    See Provide Multiple Endpoints for Your Skill.

  4. Configure the skill in the developer portal with the new endpoints, the new voice user interface, and other language-specific information.

    See Update the Skill Configuration with Language-specific Details.

  5. Test the new language version of your skill.

    You can test in the service simulator. On the Test page, select the language tab for the language version you want to test, select the endpoint to test, then enter the utterance to test normally.

    You can also test using an Alexa-enabled device that is registered to the same developer account used to create the skill.

  6. Configure the distribution for your skill to make it available to customers in relevant locations.

    See Decide Where to Distribute Your Skill.

Language-specific and Global Information in the Developer Portal

The configuration for a skill in the developer portal provides the Alexa service with the information needed to:

  • Route requests to the AWS Lambda function or web service that implements the skill. AWS Lambda is a service offering by Amazon Web Services.
  • Display information about the skill in the Amazon Alexa App.

When you add multiple languages to a skill, some of the information in the configuration applies to all languages, while some applies only to a single language. Each language is displayed on a separate tab in the developer portal. Fields that apply to all versions of the skill are grouped together with a gray background in the section called Global Fields.

The following table summarizes the fields that are applicable to all versions of the skill, and those that only apply to a single language version.

Configuration Page Global Information (All Languages) Language-specific Information

Skill Information

  • Application Id (a single ID is generated for the skill)
  • Skill Type
  • Audio Player
  • Video App
  • Render Template
  • Language
  • Name (displayed in the Alexa app)
  • Invocation name

Interaction Model

  • None
  • Intent Schema
  • Custom Slot Type values
  • Sample Utterances

Configuration

  • All Endpoint fields: The endpoints you provide are considered global information for the skill. The code at each endpoint you configure must support all languages your skill supports. See below for more about the endpoints.
  • All Account Linking fields except Privacy Policy URL.
  • All Permissions fields
  • Privacy Policy URL

SSL Certificate

Certificate for each endpoint you selected to provide.

  • None

Test

  • Enable/Disable option
  • Voice and Service Simulator fields: entering an utterance in the Service Simulator tests the specific language you are viewing. For instance, if you select the German tab for your skill and enter an utterance in the simulator:

    • Alexa uses the German interaction model to determine the intent to send to your skill.
    • The request includes the locale field set to de-DE.

Publishing Information

  • Category
  • Testing Instructions
  • Countries & Region
  • Short Skill Description
  • Full Skill Description
  • Example Phrases
  • Keywords
  • Images (Small and Large Icons)

Privacy and Compliance

  • Does this skill allow users to make purchases or spend real money?
  • Does this Alexa skill collect users’ personal information?
  • Is this skill directed to or does it target children under the age of 13?
  • Export Compliance
  • Does this skill contain advertising?
  • Privacy Policy URL
  • Terms of Use URL

Design the Voice User Interface for Each Language Your Custom Skill Supports

For each language your custom skill supports, you create a voice user interface. This includes:

  • Invocation name: A phrase users speak to begin interacting with your skill.
  • Intent schema: A JSON structure which declares the set of intents your service can accept and process. We recommend keeping the intents consistent across different languages so that customers have consistent experience across languages.
  • Sample utterances: A structured text file that connects the intents to likely spoken phrases and containing as many representative phrases as possible.
  • Custom slot type values: A representative list of values defined for each custom slot type defined in your intent schema.

For details about these items, see:

When you choose your invocation name and write sample utterances, be sure to use words and phrases appropriate for native speakers of the language.

See Update the Skill Configuration with Language-specific Details, below, for details about setting up a new language and adding a language-specific voice user interface.

Implement Code Changes for a Custom Skill

The cloud-based service you create for a custom skill needs to be able to handle requests from all languages you support. For instance, if your skill supports both German and English (UK), the same code must:

  • Take a German request and respond to the user with German text-to-speech.
  • Take an English (UK) request and respond to the user with English text-to-speech.

You can determine the language used to invoke the skill by checking the locale property included in all requests sent to your service (for example, LaunchRequest or IntentRequest. See Request Format for more about the different types of requests your skill can receive).

The locale property is part of the request object:

{
  "request": {
    "type": "LaunchRequest",
    "requestId": "EdwRequestId.00000000-0000-0000-0000-000000000000",
    "timestamp": "2016-06-14T20:59:24Z",
    "locale": "en-US"
  }
}

The locale property can be one of the following:

Locale Code Language

de-DE

German

en-AU

English (Australia)

en-CA

English (Canada)

en-GB

English (UK)

en-IN

English (India)

en-US

English (US)

ja-JP

Japanese

Although feature parity across languages is not required, keep in mind that users will be able to choose the language for their devices and switch between languages. A user may therefore interact with your skill in more than one language, so providing a consistent experience across languages is important.

Provide Multiple Endpoints for Your Skill

You can specify any combination of the following endpoints for your skill:

  • North America
  • Europe
  • India
  • Far East

The Alexa service currently determines which endpoint to call based on the customer’s location and the endpoints you provide.

Geographical region Used for...

North America

Customers in North America (customers who registered their device with the .com site)

Europe

Customers in Europe (customers who registered their device with a European site, such as .de or .co.uk)

India

Customers in India (customers who registered their device with the India site .in)

Far East

Customers in Japan and Australia/New Zealand (customers who registered their device with .co.jp or .com.au)

If the preferred endpoint for the customer’s region is not available, Alexa calls the Default endpoint.

If you choose to use multiple endpoints, you must deploy the same code to each one. A user request in a particular language can be sent to any of your endpoints. For example, suppose your skill supports both English (US) and German. An English request from a user using amazon.de would go to the Europe endpoint (if provided). The code at that endpoint must be able to handle and respond appropriately to an English-language request. Use the locale property provided in the request to identify the user’s language, as described in Implementing Code Changes for a Custom Skill.

Note: if you are using AWS Lambda, the Lambda function skill must be hosted in a specific region:

Endpoint Required Lambda Region

North America

US East (N. Virginia)

Europe

EU (Ireland)

India

EU (Ireland)

Far East

US West (Oregon)

Update the Skill Configuration with Language-specific Details

To add support for additional languages, you need to add the language to the skill configuration and provide the language-specific information, such as your new voice user interface.

For details about language-specific and global fields in the developer portal, refer back to Language-specific and Global Information in the Developer Portal.

Add a Language to an Existing Skill

  1. Log on to the Alexa section of the developer portal. From the developer portal console page, click Alexa.
  2. In the Alexa Skills Kit box, click Get Started to open the Alexa Skills Kit page. This displays any skills you have already created.
  3. Find the skill to change in the list and choose Edit.
  4. Click the Add New Language tab.
  5. Select the Language you want to add from the drop-down list. The list displays languages you have not yet configured for the skill.
  6. On the Skill Information page, enter the Name and Invocation Name to use for this language version.
  7. On the Interaction Model page, enter your Intent Schema, Custom Slot Types, and Sample Utterances for this language.
  8. On the Configuration page, update your Endpoint (if applicable):
    • For Service Endpoint Type, select to use either AWS Lambda or HTTPS.
    • Enter your Default endpoint. This endpoint is used if the preferred endpoint for the customer’s region is not available.
    • If you want to provide multiple endpoints, select Yes for Provide geographical region endpoints, then select the check box for each endpoint you want to provide.
    • Enter your endpoint or endpoints in the region-specific fields.
  9. If your skill uses account linking, enter the Privacy Policy URL for this language.
  10. If you selected HTTPS for your endpoint, go to the SSL Certificate page and configure your SSL certificate for each endpoint.
  11. On the Test page, enable testing for the skill. You can test a custom skill using the Service Simulator.

Completing the Publishing Fields

After completing your testing, prepare the new language version of the skill for submission by completing the remaining language-specific fields on the Publishing Information page:

  • Short Skill Description
  • Full Skill Description
  • Example Phrases
  • Keywords
  • Small and Large Icons

Finally, decide where you want to distribute your skill as described below and select the Countries & Region option.

Decide Where to Distribute Your Skill

The Countries & Region option on the Publishing Information page determines the countries and regions in which customers can enable and use your skill. Customers can access all skills that meet both of the following:

  • The skill is distributed in their country or region.
  • The skill supports the language selected for their Alexa-enabled device.

The distribution applies to the skill, not to individual languages. All language versions of the skill are made available to customers in the specified countries and regions, barring content policy restrictions. For example, if your skill supports German and English (US) and you select worldwide distribution, both the German and English (US) versions will be available in all countries and regions.

It is important to remember that customers have control over the language they use for their devices, and they are not constrained by their location. For instance, a customer located in Germany can choose to use a different language, such as English (UK), for their Alexa devices.

Example: Worldwide Distribution with One Language

You choose to distribute your skill in all countries and regions where Amazon distributes skills. You configure the skill with just English (UK) and no other languages. The result:

  • The skill can be used by customers anywhere in the world who have set their device to use English (UK).
  • The skill is not available to customers anywhere in the world who have selected German, English (US), or any other language for their devices.

Example: Limited Distribution with Multiple Languages

You choose to distribute your skill only in Germany because your skill’s functionality is region-specific or you want to limit the distribution only for Germany. You configure the skill with German and English (UK) for the languages. In this case:

  • The skill can be used by customers in Germany who have set their devices to use German.
  • The skill can be used by customers in Germany who have set their devices to use English (UK).
  • The skill cannot be used by customers in Germany who have set their devices to use English (US).
  • The skill cannot be used by customers in any other country, regardless of the language they’ve selected for their devices.

Should Your Skill be Available Everywhere?

Distributing your skill everywhere Amazon has a presence expands your potential customer and user base. Selecting In all countries and regions where Amazon distributes skills is often the best option unless there is a good reason to limit your skill’s availability.

  • When you distribute a skill globally, it is available to users worldwide who have configured their devices to use a language that your skill supports.
  • When you limit the availability of the skill to a particular country or region, it is available just to users in the specified country / region who have configured their devices to use a language that your skill supports.

When deciding on your skill’s availability, consider whether the skill can be useful to customers in other countries. For example, a trivia game skill can be entertaining regardless of where the user may live, especially if you can add additional languages. In contrast, some skills are useful only in particular geographic areas. For instance, a skill that provides food delivery for major US cities, but not in Europe, would not be useful in countries other than the United States.