Skip to content

Commit

Permalink
fix(core.gbapp): Translator now can be switched off by using Excel.
Browse files Browse the repository at this point in the history
  • Loading branch information
rodrigorodriguez committed Jun 4, 2020
1 parent 6523134 commit ad1bea1
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 15 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
"botbuilder-ai": "4.7.0",
"botbuilder-dialogs": "4.7.0",
"botframework-connector": "4.7.0",
"botlib": "1.5.5",
"botlib": "1.5.6",
"cli-spinner": "0.2.10",
"dotenv-extended": "2.7.1",
"exceljs": "3.5.0",
Expand Down
16 changes: 12 additions & 4 deletions packages/core.gbapp/services/GBConversationalService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -527,14 +527,22 @@ export class GBConversationalService {
}


async translate(
async translate(min: GBMinInstance,
key: string,
endPoint: string,
text: string,
language: string
): Promise<string> {

if (endPoint === null || process.env.TRANSLATOR_DISABLED === "true") {
const translatorEnabled = () => {
if (min.instance.params) {
const params = JSON.parse(min.instance.params);
return params['Enable Worldwide Translator'] === "TRUE";
}
return false;
} // TODO: Encapsulate.

if (endPoint === null || (!translatorEnabled() || process.env.TRANSLATOR_DISABLED === "true")) {
return text;
}

Expand Down Expand Up @@ -582,7 +590,7 @@ export class GBConversationalService {
const user = await sec.ensureUser(min.instance.instanceId, member.id,
member.name, "", "web", member.name);
if (text !== null) {
text = await min.conversationalService.translate(
text = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
text,
Expand All @@ -598,7 +606,7 @@ export class GBConversationalService {
const user = await min.userProfile.get(step.context, {});
if (user) {
const minBoot = GBServer.globals.minBoot as any;
text = await min.conversationalService.translate(
text = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
text,
Expand Down
12 changes: 10 additions & 2 deletions packages/core.gbapp/services/GBMinService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -691,8 +691,16 @@ export class GBMinService {

let query = context.activity.text;

const translatorEnabled = () => {
if (min.instance.params) {
const params = JSON.parse(min.instance.params);
return params['Enable Worldwide Translator'] === "TRUE";
}
return false;
} // TODO: Encapsulate.

let locale = 'pt';
if (process.env.TRANSLATOR_DISABLED !== "true") {
if (process.env.TRANSLATOR_DISABLED !== "true" || translatorEnabled()) {
const minBoot = GBServer.globals.minBoot as any; // TODO: Switch keys automatically to master/per bot.
locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ?
minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey,
Expand All @@ -708,7 +716,7 @@ export class GBMinService {
user.locale = locale;
await user.save();
const minBoot = GBServer.globals.minBoot as any;
query = await min.conversationalService.translate(
query = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
query,
Expand Down
14 changes: 10 additions & 4 deletions packages/kb.gbapp/dialogs/AskDialog.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,19 @@ export class AskDialog extends IGBDialog {
},
async step => {
if (step.result) {
const translatorEnabled = () => {
if (min.instance.params) {
const params = JSON.parse(min.instance.params);
return params['Enable Worldwide Translator'] === "TRUE";
}
return false;
} // TODO: Encapsulate.

let query = step.result;

let locale = 'pt';
const minBoot = GBServer.globals.minBoot as any;
if (process.env.TRANSLATOR_DISABLED !== "true") {

if (process.env.TRANSLATOR_DISABLED !== "true" && translatorEnabled()) {
locale = await AzureText.getLocale(minBoot.instance.textAnalyticsKey ?
minBoot.instance.textAnalyticsKey : minBoot.instance.textAnalyticsKey,
minBoot.instance.textAnalyticsEndpoint ?
Expand All @@ -121,7 +127,7 @@ export class AskDialog extends IGBDialog {
user.locale = locale;
await user.save();

query = await min.conversationalService.translate(
query = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
query,
Expand All @@ -146,7 +152,7 @@ export class AskDialog extends IGBDialog {
const userDb = await sec.ensureUser(min.instance.instanceId, member.id,
member.name, "", "web", member.name);
const minBoot = GBServer.globals.minBoot as any;
text = await min.conversationalService.translate(
text = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
text,
Expand Down
4 changes: 2 additions & 2 deletions packages/kb.gbapp/services/KBService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ export class KBService implements IGBKBService {

// Calls language translator.

let text = await min.conversationalService.translate(
let text = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
answer.content,
Expand Down Expand Up @@ -457,7 +457,7 @@ export class KBService implements IGBKBService {
const user = await sec.ensureUser(min.instance.instanceId, member.id,
member.name, "", "web", member.name);
const minBoot = GBServer.globals.minBoot as any;
html = await min.conversationalService.translate(
html = await min.conversationalService.translate(min,
min.instance.translatorKey ? min.instance.translatorKey : minBoot.instance.translatorKey,
min.instance.translatorEndpoint ? min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
html,
Expand Down
4 changes: 2 additions & 2 deletions packages/whatsapp.gblib/services/WhatsappDirectLine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,7 @@ export class WhatsappDirectLine extends GBService {
public async sendToDeviceEx(to, msg, locale) {
const minBoot = GBServer.globals.minBoot as any;

const text = await this.min.conversationalService.translate(
const text = await this.min.conversationalService.translate(this.min,
this.min.instance.translatorKey ? this.min.instance.translatorKey : minBoot.instance.translatorKey,
this.min.instance.translatorEndpoint ? this.min.instance.translatorEndpoint : minBoot.instance.translatorEndpoint,
msg,
Expand All @@ -430,7 +430,7 @@ export class WhatsappDirectLine extends GBService {
public async sendToDevice(to, msg) {

const cmd = '/audio ';
if (msg.startsWith(cmd) && process.env.AUDIO_DISABLED !== 'true') {
if (msg.startsWith(cmd)) {
msg = msg.substr(cmd.length);
return await this.sendTextAsAudioToDevice(to, msg);
}
Expand Down

0 comments on commit ad1bea1

Please sign in to comment.