botbuilder-dialogs
Version:
A dialog stack based conversation manager for Microsoft BotBuilder.
123 lines • 4.04 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.PromptCultureModels = void 0;
const recognizers_text_suite_1 = require("@microsoft/recognizers-text-suite");
/**
* Class container for currently-supported Culture Models in Confirm and Choice Prompt.
*/
class PromptCultureModels {
/**
* @private
*/
static getSupportedCultureCodes() {
return this.getSupportedCultures().map((c) => c.locale);
}
/**
* Use Recognizers-Text to normalize various potential Locale strings to a standard.
*
* @remarks This is mostly a copy/paste from https://github.com/microsoft/Recognizers-Text/blob/master/JavaScript/packages/recognizers-text/src/culture.ts#L39
* This doesn't directly use Recognizers-Text's MapToNearestLanguage because if they add language support before we do, it will break our prompts.
* @param cultureCode Represents locale. Examples: "en-US, en-us, EN".
* @returns Normalized locale.
*/
static mapToNearestLanguage(cultureCode) {
if (cultureCode) {
cultureCode = cultureCode.toLowerCase();
const supportedCultureCodes = this.getSupportedCultureCodes();
if (supportedCultureCodes.indexOf(cultureCode) < 0) {
const culturePrefix = cultureCode.split('-')[0].trim();
supportedCultureCodes.forEach(function (supportedCultureCode) {
if (supportedCultureCode.startsWith(culturePrefix)) {
cultureCode = supportedCultureCode;
}
});
}
}
return cultureCode;
}
}
exports.PromptCultureModels = PromptCultureModels;
PromptCultureModels.Chinese = {
locale: recognizers_text_suite_1.Culture.Chinese,
separator: ', ',
inlineOr: ' 要么 ',
inlineOrMore: ', 要么 ',
yesInLanguage: '是的',
noInLanguage: '不',
};
PromptCultureModels.Dutch = {
locale: recognizers_text_suite_1.Culture.Dutch,
separator: ', ',
inlineOr: ' of ',
inlineOrMore: ', of ',
yesInLanguage: 'Ja',
noInLanguage: 'Nee',
};
PromptCultureModels.English = {
locale: recognizers_text_suite_1.Culture.English,
separator: ', ',
inlineOr: ' or ',
inlineOrMore: ', or ',
yesInLanguage: 'Yes',
noInLanguage: 'No',
};
PromptCultureModels.French = {
locale: recognizers_text_suite_1.Culture.French,
separator: ', ',
inlineOr: ' ou ',
inlineOrMore: ', ou ',
yesInLanguage: 'Oui',
noInLanguage: 'Non',
};
PromptCultureModels.German = {
locale: recognizers_text_suite_1.Culture.German,
separator: ', ',
inlineOr: ' oder ',
inlineOrMore: ', oder ',
yesInLanguage: 'Ja',
noInLanguage: 'Nein',
};
PromptCultureModels.Italian = {
locale: recognizers_text_suite_1.Culture.Italian,
separator: ', ',
inlineOr: ' o ',
inlineOrMore: ' o ',
yesInLanguage: 'Si',
noInLanguage: 'No',
};
PromptCultureModels.Japanese = {
locale: recognizers_text_suite_1.Culture.Japanese,
separator: '、 ',
inlineOr: ' または ',
inlineOrMore: '、 または ',
yesInLanguage: 'はい',
noInLanguage: 'いいえ',
};
PromptCultureModels.Portuguese = {
locale: recognizers_text_suite_1.Culture.Portuguese,
separator: ', ',
inlineOr: ' ou ',
inlineOrMore: ', ou ',
yesInLanguage: 'Sim',
noInLanguage: 'Não',
};
PromptCultureModels.Spanish = {
locale: recognizers_text_suite_1.Culture.Spanish,
separator: ', ',
inlineOr: ' o ',
inlineOrMore: ', o ',
yesInLanguage: 'Sí',
noInLanguage: 'No',
};
PromptCultureModels.getSupportedCultures = () => [
PromptCultureModels.Chinese,
PromptCultureModels.Dutch,
PromptCultureModels.English,
PromptCultureModels.French,
PromptCultureModels.German,
PromptCultureModels.Italian,
PromptCultureModels.Japanese,
PromptCultureModels.Portuguese,
PromptCultureModels.Spanish,
];
//# sourceMappingURL=promptCultureModels.js.map
;