Develop Smart Home Skills for Multiple Languages

You can create Alexa skills that respond to customer utterances in different languages. For each language that you support, Alexa interprets the customer utterance and sends a corresponding directive to your skill at the appropriate Amazon Web Services (AWS) Lambda function endpoint.

For more details about the Smart Home skills, see Understand the Smart Home Skills and Steps to Build a Smart Home Skill.

Determine language support

Language support varies by interface. Before you target a new language, verify that each interface that you implement in your skill is supported for the new language. For details, see List of Alexa Interfaces and Supported Languages.

Based on interface support, a smart home skill can support a single language, or any combination of the following available languages:

  • Arabic (SA)
  • English (AU)
  • English (CA)
  • English (IN)
  • English (UK)
  • English (US)
  • French (CA)
  • French (FR)
  • German (DE)
  • Hindi (IN)
  • Italian (IT)
  • Japanese (JP)
  • Portuguese (BR)
  • Spanish (ES)
  • Spanish (MX)
  • Spanish (US)

Create multiple language versions of a skill

You can create a smart home skill and add a new language, or you can create a new skill that supports multiple languages.

To add a language to an existing skill in the Alexa developer console

  1. Sign in to the Alexa developer console.
  2. On the Skills tab, under SKILL NAME, find the skill that you want to add an additional language to.
  3. Under ACTIONS, from the drop-down menu in your skill's row, select Edit.
  4. You use the language drop-down at the top of the sidebar to add a new language and switch between languages. Click the drop-down and then click Language settings, and + Add new Language.
  5. Choose new languages and click Save.
  6. Configure the settings for each language on the Build and Distribution pages.

To create a new skill that supports one or more languages in the Alexa developer console

  1. Sign in to the Alexa developer console.
  2. On the Skills tab, click Create Skill.
  3. On the Create a new skill page, provide the following information:
    1. For Skill name, enter the name for your skill. You can configure language-specific names for the Alexa skill store in a later step.
    2. For Primary locale, choose a default language for your skill.
    3. For Choose a model to add to your skill, select Smart Home.
    4. For Choose a method to host your skill's backend resources, select Provision your own.
    5. In the upper-right corner, click Create skill.
  4. In the upper left corner, click the language drop-down and select Language settings.
  5. Select + Add new Language, and then select the languages that your skill supports.
  6. Click Save.

Allow additional URLs with your OAuth provider

The account linking configuration that you provide in the developer console is global across different language versions of your skill. However, each AWS Lambda region for a multi-language skill has a different redirect URL. To account-link your skill to a device cloud and test your skill, you must allow each redirect URL with your OAuth 2.0 provider. After you add one or more languages to your skill, copy the redirect URLs in the developer console. For details, see Alexa Redirect URLs.

To find the redirect URLs in the Alexa developer console

  1. Navigate back to your skill in the developer console.
  2. On the Smart Home page, under 3. Account Linking, click Setup Account Linking.
    Or, from the left menu, click ACCOUNT LINKING.
  3. Scroll down to Alexa Redirect URLs, and then copy the URLs.
  4. Add these URLs to your OAuth provider configuration.

Deploy your Lambda function to multiple regions

Alexa interprets a customer request for you whether it's in German or English, and sends the correct directive to your skill. You write code that receives these directives from Alexa and communicates with the cloud-connected devices that your skill supports. Your code is hosted as an AWS Lambda Function. To enable multiple language support, you must deploy your AWS Lambda function code to multiple AWS regions. For example, you must deploy Arabic skills to both US East and EU regions. For detailed steps to create and configure a Lambda function, see Add a Lambda function.

The following table lists the Alexa endpoint region and associated AWS Lambda region that you must use for each language. If a language or country isn't shown in the table, see Countries without native language support.

Skill language and locale AWS Lambda region Alexa endpoint region
Arabic (SA), English (CA), English (US), French (CA), Portuguese (BR), Spanish (MX), Spanish (US) US East (N. Virginia) North America
Arabic (SA), English (IN), English (UK), French (FR), German (DE), Hindi (IN), Italian (IT), Spanish (ES) EU (Ireland) Europe and India
English (AU), Japanese US West (Oregon) Far East and Australia

Countries without native language support

You can publish your smart home skill in a country even if Alexa doesn't support languages commonly spoken in that country. To offer your skill in a country without native language support, select the default skill language, and then select the AWS Lambda and Alexa endpoint regions based on the country where you want your skill to be available.

The following table shows the valid languages and AWS Lambda and Alexa endpoint regions by country.

Country Supported skill languages AWS Lambda region Alexa endpoint region

Argentina, Chile, Colombia, Costa Rica, Peru

English(US)

US East (N. Virginia)

North America

Belgium, Luxembourg, Switzerland

French (FR), German (DE), Italian (IT)

EU (Ireland)

Europe and India

Denmark, Finland, Norway, Poland, Portugal, Sweden, Turkey

English (US)

US East (N. Virginia)

North America

Indonesia, Malaysia, Philippines, Singapore, South Korea

English (US)

US East (N. Virginia)

North America

Netherlands

English (UK)

EU (Ireland)

Europe and India

Other country

English (US)

US East (N. Virginia)

North America

Send events to the correct URL

If you send asynchronous responses and events, you must send them to the correct Alexa event gateway. The event gateway varies depending where you host your Lambda function. When you send a message to the Alexa event gateway, send it to the endpoint that aligns with the geographic availability of your skill. The following list shows the Alexa regions and associated endpoints.

  • North America: https://api.amazonalexa.com/v3/events
  • Europe and India: https://api.eu.amazonalexa.com/v3/events
  • Far East and Australia: https://api.fe.amazonalexa.com/v3/events

Provide the ARN numbers for your skill in the developer console

To access the Lambda function that contains your skill code, Alexa uses the Amazon Resource Name (ARN). The ARN defines the endpoint location of the Lambda function. To establish the link between Alexa and the Lambda function in each geographic region, you provide the ARN in the skill configuration in the developer console.

To configure regional endpoint in the Alexa developer console

  1. Navigate back to your skill in the developer console.
  2. On the Smart Home page, under 2. Smart Home service endpoint, choose the geographic regions that apply, such as Europe, India.
  3. Enter the ARN for the Lambda endpoint in the text boxes provided. For the association between the skill language and AWS Lambda region, see Deploy Your Lambda Function.
    • If your skill only supports one language/region, provide the same ARN for the default ARN and the selected regional ARN.
    • If your skill supports multiple languages/regions, you must provide ARNs for each region. Provide one of the regional ARNs for the default.
  4. Click SAVE.

Test your skill with an account for each language that you support. To find your skill in the Alexa app, tap More, tap Skills & Games, and then tap Your Skills in the upper right corner. To test, you need cloud-connected devices that can be discovered by an Alexa-enabled device.

Although Alexa provides the language handling for you, you should test your skill in all languages that it supports. Make sure that your skill works with the utterances relevant to the smart home interfaces that your skill and target language support.

Provide launch information for each language

Configure the settings for each language on the Distribution page. To pass certification, you must provide values for these fields in the each language that your offer the skill.

  • One Sentence Description
  • Detailed Description
  • Keywords
  • Small and Large Icons

Define skill details for each language and skill availability

Customers who interact with Alexa in a particular language can use smart home skills that support that language. For example, a customer might set their Alexa device to use German. That customer can enable and use any published skills that support German that are available in the Alexa Skills Store in their country or region.

Define skill details for each language

For each language that your skill supports, configure the settings on the Distribution page in the developer console and choose where you plan to distribute your skill. In the testing instructions, include test credentials for each language version of your skill.

To pass certification, you must provide values for the following fields in the each language that your offer the skill.

  • One sentence description
  • Detailed description
  • Example phrases
  • Small and large icons
  • Keywords
  • Privacy questions
  • Testing instructions

Define skill availability

Skill availability applies to all languages that your skill supports. You can choose the option to distribute your skill in all countries where Amazon distributes skills, or you can choose specific countries and regions. Distribution is independent of language. A skill can be available in a particular country or region even if it doesn't support languages commonly spoken in that region.

Because a smart home skill relies on cloud-connected devices, you should consider whether the devices that accompany your skill are available to customers and function correctly in a particular country/region.