Develop Smart Home Skills for 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
- Whitelist Additional URLs With Your OAuth Provider
- Provide Launch Information for Each Language
- Deploy Your Lambda Function to Multiple Regions
- Send Events to the Correct URL
- Provide the ARN numbers for Your Skill in the Developer Console
- Enable, Account Link and Test Your Skill in Multiple Languages
- Provide Testing Instructions, Privacy & Compliance and Availability for Your Skill
- Skill Submission
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.
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 - all locales, French (FR), German, Italian, Japanese, Spanish (ES)|
|Door and locks||English (US), English (UK), English (CA), English (AU), German, Italian, Japanese, Spanish (ES)|
|Thermostats, air conditioners, and fans||English - all locales, French (FR), German, Italian, Spanish (ES)|
|Cameras||English - all locales, French (FR), German, Italian, Spanish (ES). See Build Smart Home Camera Skills for device support in each locale.|
|Entertainment devices||English - all locales, Italian, Spanish (ES)|
|Cooking Appliances||English (US)|
|Sensors (contact and motion sensors)||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
Add a language to an existing skill
- Sign in to the developer console, navigate to your list of skills and select the skill you will add additional language support for.
- 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.
- Choose new languages and click Save.
- Configure the settings for each language on the Build and Distribution pages.
Add a new skill that supports one or more languages
- Sign in to the console and select Create Skill.
- Enter the name for your skill. You can configure language-specific names for the skill store in a later step.
- Select the Default language for the skill
- Choose the Smart Home pre-built model, then select Create Skill.
- In the upper left corner, click the language drop-down and select Language settings.
- Select + Add new Language, and select the languages your skill will support. Click Save.
Whitelist Additional URLs With Your OAuth Provider
On the Build page, the information you provide for Account Linking 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 Account Linking page for your skill in the Developer Console. 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 configuring account linking, see: Configure Authorization Code Grant.
Provide Launch Information for Each Language
- Configure the settings for each language on the Distribution page. To pass certification, values for these fields must be provided in the same language the skill is offered in.
- One Sentence Description
- Detailed Description
- Small and Large Icons
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), English (CA)||North America||US East (N. Virginia)|
|English (UK), French (FR), German, Italian, Spanish (ES)||Europe, India||EU (Ireland)|
|English (IN)||Europe, India||EU (Ireland)|
|Japanese, English (AU)||Far East||US West (Oregon)|
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:
- Far East:
Provide the ARN numbers for Your Skill in the Developer Console
Add the ARN number for each geographic region to the Build page in the developer console. To enable this:
- In the Developer Console, select the skill and click the Build tab.
- Choose the geographic regions that apply, such as Europe, India.
- Enter the ARN or 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.
Enable, Account Link and Test Your Skill in Multiple Languages
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 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 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||Sample Japanese|
|discover appliances||discover my smart home devices||finde meine Smart-Home-Geräte||デバイスを検出して|
|turn on device(s)||turn on the device name||schalte Gerätename ein||device nameをオンにして|
|set a device to a value||set the room name to ##||stelle Raumname auf ## Grad||device nameを##度にセットして|
For more example utterances, see the each interface topic, the Smart Home Skill Publishing Guide.
Provide Testing Instructions, Privacy & Compliance and Availability for Your Skill
The final steps to publishing your skill are to provide test instructions for the certification team, answer privacy questions, and choose where you will distribute your skill.
For Privacy & Compliance:
- Answer the questions, using the tooltips for more information
- Choose the option to distribute your skill in all countries where Amazon distributes skills or choose specific countries and regions. The distribution is independent of language – a skill can be available in a particular country/region even if it does not support languages commonly spoken in that region.
Note that this option applies to all language versions of your skill.
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 testing instructions including test credentials for each language version of your skill.
When you've completed these items, click Save and continue to move to the next page.
When you have completed all of the requested information for each language version of your skill, the Submit for review 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.