Develop Smart Home Skills in Multiple Languages
You can use the Smart Home Skill API to create smart home skills that respond to customer requests made in different languages.
- Determine Language Support
- Create Multiple Language Versions of a Skill in the Developer Portal
- Deploy Your Lambda Function to Multiple Regions
- Send Events to the Correct URL
- Provide the ARN numbers for Your Skill in the Developer Portal
- Whitelist Additional URLs With Your OAuth Provider
- Enable, Account Link and Test Your Skill in Multiple Languages
- Provide Testing Instructions and Choose the Distribution for Your Skill
- Provide Publishing Information for Your Skill
- Answer the Privacy and Compliance Questions
- Submit Your Skill for Certification
For a supported language, the Smart Home Skill API automatically interprets the customer request and sends the appropriate directive to code in a Lambda function that can handle the request. The skill communicates with the device cloud and performs the desired request or returns a fault message. Language support varies by device category. Check the table in Determine if your Devices are Supported for your Target Languages, and individual interface topics to determine if your devices are supported for the language you want to target.
To add language support for an existing smart home skill or create a smart home skill that supports multiple languages, there are a few steps you need to take. These steps will be detailed in the following sections.
The steps for multi-language support are:
- Determine language support
- Create multiple language versions of the skill in the developer portal. The skill’s Application ID is the same across all languages, but the Name can be different across languages
- Deploy your skill adapter for the skill to multiple AWS regions. This helps ensure low latency and provides a unique Amazon Resource Number (ARN) for each region the skill adapter is hosted in.
- Add the ARN number for each AWS region to the skill information in the developer portal
- Send asynchronous and change report events to the correct Alexa gateway URL. You must send these to the same geographic region as your Lambda function.
- Whitelist URLs for account linking for each language version of your skill
- Enable, account link and test your skill in multiple languages
- Provide additional configuration and publication details for each language version of your skill in the Developer Portal
Note that this document supplements existing smart home skill documentation and is specific to multi-language skills. You should understand how to create a smart home skill.
For more information on the Smart Home Skill API or how to create a smart home skill, see
Determine Language Support
Language support varies by interface. The following table lists general device categories and the languages customers can use to control and query devices in that category. But, you should check the topic for each interface you plan to use to determine its language support. For example, PowerController is supported in all languages and can be used across a number of device categories.
|Device category||Supported Language(s)|
|Lights and switches||English (US), English (UK), English (India), German|
|Door and locks||English (US), English (UK), German|
|Thermostats, air conditioners, and fans||English (US), English (UK), German|
|Cameras||English (US), English (UK), German|
|Entertainment devices||English (US)|
If you would like to create/certify a smart home skill using interfaces in languages other than what is currently supported, use the contact form on the Developer Support page to let us know. Provide the following information:
- Email address: Provide an email address for a developer account associated with your skill.
- Subject: Alexa
- Message: Specify the device types that the skill controls, and the language you would like to target.
Create Multiple Language Versions of a Skill in the Developer Portal
To add a language to an existing skill:
- Sign in to the developer portal, navigate to your list of skills and select the skill you will add additional language support for.
- Select the Add a New Language tab, and choose an additional language.
- Enter the Name of the skill you’d like to use for this language. You can use different names for different language versions of the same skill Once you add a language to your skill, you will need to provide all of the skill and publishing information, and configuration details for the additional language before you submit it for certification.
To add a new skill that supports one or more languages:
- Sign in to the portal, choose Get Started on Alexa Skills Kit and select Add a New Skill.
- Choose a language from the drop-down (you will add additional languages in a later step), and Smart Home Skill API
- Enter the name for your skill for the language you have chosen. Skills can have different names for each language they are offered in. Click Save
- Choose the Add a New Language Tab and choose another language from the drop-down.
- Enter the name for your skill for the language you have chosen
It’s important to note that you cannot submit a multi-language skill for certification until all of the required skill and publishing information and configuration details are complete for each language version of the skill. If you don’t have all of this information, it is better to submit a skill for certification in one language and add additional languages later.
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. Deploying to multiple regions is required and also helps ensure your skill is responsive to requests.
The following table lists the endpoint region and associated AWS region you must use.
|Skill language||Endpoint Region||Lambda Function Region|
|English (US)||North America||US East (N. Virginia)|
|English (UK), German||Europe||EU (Ireland)|
|English (India)||India||EU (Ireland)|
Make a note of the ARN for each region. You will add an ARN for each region when you configure the skill.
For more detailed steps on how to create a a skill, see the Add a Lambda Function section of Steps to Build a Smart Home Skill and for details on the directives that your adapter could receive, see Smart Home Skill API Message Reference.
Send Events to the Correct URL
If you send asynchronous and change report events, you must send them to the correct Alexa event gateway. The event gateway varied depending where your Lambda function is hosted. Following is the list of URLs by region.
- North America:
Provide the ARN numbers for Your Skill in the Developer Portal
Add the ARN number for each geographic region to the configuration page in the developer portal. To enable this:
- In the Developer Portal, select the skill and click a language tab.
- Click the Configuration page.
- Choose Yes for Provide geographical region endpoints? and choose the regions that apply, such as Europe.
- Enter the ARN for the Lambda endpoints in the text boxes provided. See the table in the Deploy Your Lambda Function… section for the association between the skill language, endpoint region and region that Lambda function must be hosted.
- 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.
The following image shows an example of configuration regionals endpoints.
Whitelist Additional URLs With Your OAuth Provider
You must provide Account Linking information for every smart home skill. This information is global across different language versions of your skill. However, each Lambda region for a multi-language skill has a different Redirect URL, which is provided on the Configuration page for your skill in the Developer Portal. You must whitelist each of the Redirect URLs with your OAuth provider. You will need this to successfully account-link your skill to a device cloud and test your skill. For more information about Account Linking, see Authenticate an Alexa User with Account Linking.
Enable, Account Link and Test Your Skill in Multiple Languages
You should test your skill using an Alexa-enabled device that is registered to the same developer account used to create the skill. Make sure and test your skill with an account for each language. You can find your skill by browsing to Skills the Alexa app, and choosing Your Skills in the upper right corner. You will also need cloud-connected devices that your skill is designed to work with that can be discovered by the Alexa-enabled device.
The following table provides a few sample utterances in English and German for testing purposes. Although Alexa provides the language handling for you, you should test your skill in all languages that it supports.
|Intent||Sample English||Sample German|
|discover appliances||Alexa, discover my smart home devices||Alexa, finde meine Smart-Home-Geräte|
|turn on device(s)||Alexa, turn on the device name||Alexa, schalte Gerätename ein|
|set a device to a value||Alexa, set the room name to number degrees||Alexa, stelle Raumname auf Anzahl Grad|
For more example utterances, see the each interface topic, the Smart Home Skill Publishing Guide.
Provide Testing Instructions and Choose the Distribution for Your Skill
The final steps to publishing your skill are to provide test instructions for the certification team, choose where you will distribute your skill and provide descriptive information that displays to the customer in the Alexa app.
This page contains a mix of global and language specific fields. Testing Instructions and Distribution are global across language versions. Global fields are located in the gray box at the top of the page. When you answer questions that apply globally, a Save Global changes dialog appears that confirms the change before you move to the next page.
For Testing Instructions:
- Provide contact information and test account credentials for account linking.
Choose the SELECT ALL option to distribute your skill in all countries where Amazon distributes skills. The distribution is independent of language – a skill can be available in a particular country even if it does not support languages commonly spoken in that country.
Note that this option applies to all language versions of your skill. Once international support for Alexa is launched publicly, customers will be able to 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.
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 will function correctly in a particular country/region.
Provide Publishing Information for Your Skill
The publishing information is not global, and must be completed for each language version of your skill. Following is an example of the Publishing Information page from the developer portal.
Select a language tab to provide values for the following fields. To pass certification, values for these fields must be provided in the same language the skill is offered in.
- Short Skill Description
- Full Skill Description
- Small and Large Icons
Each field contains detailed instructions. When you’ve completed these items, click Next to move to the next page.
Answer the Privacy and Compliance Questions
Submit Your Skill for Certification
When you have completed all of the requested information for each language version of your skill, the Submit for Certification button will be enabled, and you can submit the skill for certification.
To help the certification team, you should respond to any requests for more information promptly.