Como hacer un skill multilenguaje para Alexa o Amazon echo
5 (100%) 2 votes

Alexa Multilenguaje: En este apartado veremos como crear un skill para amazon echo multilenguaje  para eso usaremos nuestro skill que hemos creado desde cero llamado Adivina el numero, inicialmente fue creado en español, pero como todavía no lo podemos probar en un amazon echo real, solo lo podemos probar en la plataforma de amazon developer, entonces vamos a agregar el idioma ingles para poder así poder probarlo en un Amazon echo real.

He creado un video explicando como hacerlo y qui voy a resumirlo en pocas palabras lo que tenemos que hacer.

agregando otro idioma para nuestro skill – alexa multilenguaje

en la plataforma developer agregamos un idioma mas yo elegi ingles americano, la sigla es [ en-US ]  existen varias mas, como :

    'en-US': english,
    'en-GB': english,
    'en-CA': english,
    'en-IN': india english,
    'en-AU': english,
    'fr-FR': Frances,
    'de-DE': Aleman,
    'es-ES': espanol,
    'it-IT': italiano,

esto tenemos que tener en cuenta porque cuando en lambda tenemos que controlar el idioma con la cual el usuario esta haciendo la llamada y en base a ese idioma nuestro skill ” alexa multilenguaje ” va a trabajar.

el siguiente paso en el de copiar desde el idioma español lo que esta JSon editor, y copiarlo en el idioma ingles.

después de eso tenemos que verificar y hacer los cambios necesarios, por ejemplo en nuestro caso, en el slot restart decía tenia el valor reinicia. en este caso vamos a decir restart, entonces cambiamos el valor reinicia con restart.

Tambien tenemos que cambiar el Invocation name (porque sera en Ingles) yo le puse guess the number.

después de cada cambio tenemos que hacer click en build model para que los cambios tengan efecto.

Ahora nos vamos a lambda a nuestra función, qui debemos copiar nuestro principal handler y pegarlo

Asi va quedar nuestro handler

exports.handler = function (event, context, callback) {
    const alexa = Alexa.handler(event, context, callback);
    var locale = event.request.locale;


    if (locale == 'en-US'){

        alexa.registerHandlers(UShandlers);

    } else {

        alexa.registerHandlers(EShandlers);

    }

    alexa.execute();
};

 

y ahora vamos a tener 2 handler
uno en Espanol y uno en Ingles

y vamos a sostituir const handlers = { ——> con este const EShandlers = {

y creamos otro handler const UShandlers ={ y aqui pegamos el anterior, solo tenemos que traducir donde Alexa responde.

y donde controla el valor reinicia y lo cambiamos con restart.

para mas información pueden ver el video Alexa multilenguaje:

 

Corrigiendo error en el código [números mayores de 100]

En el código he hecho un cambio por que gracias a un usuario que comento en youtube me preguntaba que si decía un numero mas alto de 100 daba error con ?

entonces para resolver ese problema en la parte donde controlamos y si el numero que ha dicho el usuario es o no el numero que Alexa esta pensando agregamos un if donde controlamos si el numero es mayor de 100 debe repetir.

así quedaría mi if


   if(this.attributes['guessNumber']==getNumber){
                 
                this.emit(':tell','Ganaste,  El numero era '+ this.attributes['guessNumber'] + ', Muy bien sigue asi ');
                    
                }else if(getNumber>100){
                    
                    this.emit(':ask','el numero es mayor de 100 porfavor di un numero entre 1 y 100');
                }
                else if(this.attributes['countContainer']==7){ // aqui controla si  hemos llegado al maximo de nuestros intentos
                    
                    this.emit(':tell',' Perdiste, el numero era '+this.attributes['guessNumber']+ ' lo siento vuelve a intentar, di alexa empieza adivina el numero ');
                
                }
                else if (this.attributes['guessNumber']<getNumber){// la condicion si el numero que hemos dicho es menor
                    
                      this.emit(':ask', getNumber+ ', es muy alto, prueba un numero menor');
                    
                }
                      else{//la condiciopn si el numero que hemos dicho es mayor
                         this.emit(':ask', getNumber+ ', es muy bajo, prueba un numero mas alto.');
                      }
                },

 

También te puede interesar:

alexa en españolCURSO-SOLO-CODIGOS-ALEXA-SKILL

 

benji-foto-pequena-avatar

Soy Benjamin De La Cruz, Ingeniero en Computer Science, me apasiona el marketing, el desarrollo web y especialmente la programacion, he creado este blog para brindarte las herramientas y guías que te serán útiles.

error: Content is protected !!