diff --git a/packages/basic.gblib/services/DialogKeywords.ts b/packages/basic.gblib/services/DialogKeywords.ts index 0f499f69..a8d29640 100644 --- a/packages/basic.gblib/services/DialogKeywords.ts +++ b/packages/basic.gblib/services/DialogKeywords.ts @@ -177,6 +177,18 @@ export class DialogKeywords { await this.min.userProfile.set(step.context, user); } + /** + * Defines translator behaviour. + * + * @example SET TRANSLATOR ON | OFF + * + */ + public async setTranslatorOn(step, on) { + const user = await this.min.userProfile.get(step.context, {}); + user.basicOptions.translatorOn = (on.trim() === "on"); + await this.min.userProfile.set(step.context, user); + } + /** * Returns the name of the user acquired by WhatsApp API. */ @@ -252,7 +264,8 @@ export class DialogKeywords { * Talks to the user by using the specified text. */ public async talk(step, text: string) { - return await this.min.conversationalService.sendText(this.min, step, text); + await this.min.conversationalService['sendTextWithOptions'](this.min, step, text, + this.user.basicOptions.translatorOn, null); } /** diff --git a/packages/basic.gblib/services/GBVMService.ts b/packages/basic.gblib/services/GBVMService.ts index d3eae916..b8e40917 100644 --- a/packages/basic.gblib/services/GBVMService.ts +++ b/packages/basic.gblib/services/GBVMService.ts @@ -247,6 +247,10 @@ export class GBVMService extends GBService { code = code.replace(/(set max lines)(\s*)(.*)/gi, ($0, $1, $2, $3) => { return `setMaxLines (step, ${$3})\n`; }); + + code = code.replace(/(set translator)(\s*)(.*)/gi, ($0, $1, $2, $3) => { + return `setTranslatorOn (step, "${$3.toLowerCase()}")\n`; + }); code = code.replace(/set\s(.*)/gi, ($0, $1, $2) => { return `sys().set (${$1})`; @@ -449,6 +453,9 @@ export class GBVMService extends GBService { code = code.replace(/("[^"]*"|'[^']*')|\bsetMaxLines\b/gi, ($0, $1) => { return $1 === undefined ? 'this.setMaxLines' : $1; }); + code = code.replace(/("[^"]*"|'[^']*')|\bsetTranslatorOn\b/gi, ($0, $1) => { + return $1 === undefined ? 'this.setTranslatorOn' : $1; + }); code = code.replace(/("[^"]*"|'[^']*')|\btransfer\b/gi, ($0, $1) => { return $1 === undefined ? 'this.transfer' : $1; }); @@ -692,11 +699,6 @@ export class GBVMService extends GBService { const promise = min.cbMap[id].promise; delete min.cbMap[id]; try { - - // if (step.activeDialog.state.options.previousResolve != undefined) { - // step.activeDialog.state.options.previousResolve(); - // } - const opts = await promise(step, result); if (Object.keys(min.cbMap).length) { return await step.replaceDialog('/hear', opts); diff --git a/packages/core.gbapp/services/GBMinService.ts b/packages/core.gbapp/services/GBMinService.ts index 7c07c4cd..76a52e19 100644 --- a/packages/core.gbapp/services/GBMinService.ts +++ b/packages/core.gbapp/services/GBMinService.ts @@ -751,7 +751,7 @@ export class GBMinService { user.subjects = []; user.cb = undefined; user.welcomed = false; - user.basicOptions = { maxLines: 100 }; + user.basicOptions = { maxLines: 100, translatorOn: true }; firstTime = true;