Inicialmente, seguro que estarás pensando en diseñar una skill en tu idioma y para usuarios que vivan en tu pais. Eso está bien, hay que empezar por algún sitio.

Afortunadamente, no es difícil extender una skill a otros idiomas o países.

Ejemplo: tienes una skill en español para España y la quieres extender a español para México.

Desde la consola de desarrollo, editas tu skill, vas a Build, seleccionas Language Settings y añades los idiomas que quieras, en este caso Spanish (MX).

Ahora tienes que copiar los intents y slots que de Spanish(Spain) a Spanish (MX). Puedes hacerlo a mano, pero te resultará mas rápido si los haces de la siguiente manera:

  1. selecciona Spanish (Spain)
  2. JSON editor
  3. selecciona toda la estructura JSON y copiala
  4. ve a Spanish (MX)
  5. JSON editor
  6. pega la estructura copiada anteriormente

Aunque el idioma es el mismo, hay algunas palabras que suenan mejor en unos paises que en otros, asi que no es mala idea revisar los utterances.

También puedes querer extender una skill no solo a otro país con el mismo idioma, sino a otro idioma distinto. Si se tienen en cuenta algunas cosas, se puede usar las misma función en el back-end para todos los idiomas.

const Alexa = require('alexa-sdk'); // Incluir el SDK para Alexa skills

exports.handler = function (event, context) {
    const alexa = Alexa.handler( event, context );
    alexa.appId = 'amzn1.ask.skill.xxxxxxxxxxxxxxxxxx';
    alexa.resources = languageStrings; // Campo con los literales
    alexa.registerHandlers( handlers );
    alexa.execute();
};

const languageStrings = {
    'en': {
        'translation': {
            'READY_TO_GO' : 'Are you ready to go? Say start.',
            .......
         }
     },
     'es': {
        'translation': {
            'READY_TO_GO' : 'Si estás listo, di comenzar',
            .......
        }
    }
};
const handlers = {
    'NewSession' : function () {
        console.log( "Ready to go: " + this.t('READY_TO_GO') );
    }
....
};

Cuando esta función en node.js sea llamada por la skill en español, el resultado de this.t(READY_TO_GO) será ‘Si estás listo, di comenzar’ y cuando sea llamada por la skill en inglés el resultado será ‘Are you ready to go? Say start.’

Así se puede tener una única función con todo el código en común para todos los idiomas.