add initial marp implementation with sample content and build configuration
This commit is contained in:
6
node_modules/speech-rule-engine/js/l10n/l10n.d.ts
generated
vendored
Normal file
6
node_modules/speech-rule-engine/js/l10n/l10n.d.ts
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
import { Locale } from './locale.js';
|
||||
export declare const locales: {
|
||||
[key: string]: () => Locale;
|
||||
};
|
||||
export declare function setLocale(): void;
|
||||
export declare function completeLocale(json: any): void;
|
||||
80
node_modules/speech-rule-engine/js/l10n/l10n.js
generated
vendored
Normal file
80
node_modules/speech-rule-engine/js/l10n/l10n.js
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.locales = void 0;
|
||||
exports.setLocale = setLocale;
|
||||
exports.completeLocale = completeLocale;
|
||||
const engine_js_1 = require("../common/engine.js");
|
||||
const variables_js_1 = require("../common/variables.js");
|
||||
const grammar_js_1 = require("../rule_engine/grammar.js");
|
||||
const locale_af_js_1 = require("./locales/locale_af.js");
|
||||
const locale_ca_js_1 = require("./locales/locale_ca.js");
|
||||
const locale_da_js_1 = require("./locales/locale_da.js");
|
||||
const locale_de_js_1 = require("./locales/locale_de.js");
|
||||
const locale_en_js_1 = require("./locales/locale_en.js");
|
||||
const locale_es_js_1 = require("./locales/locale_es.js");
|
||||
const locale_euro_js_1 = require("./locales/locale_euro.js");
|
||||
const locale_fr_js_1 = require("./locales/locale_fr.js");
|
||||
const locale_hi_js_1 = require("./locales/locale_hi.js");
|
||||
const locale_ko_js_1 = require("./locales/locale_ko.js");
|
||||
const locale_it_js_1 = require("./locales/locale_it.js");
|
||||
const locale_nb_js_1 = require("./locales/locale_nb.js");
|
||||
const locale_nemeth_js_1 = require("./locales/locale_nemeth.js");
|
||||
const locale_nn_js_1 = require("./locales/locale_nn.js");
|
||||
const locale_sv_js_1 = require("./locales/locale_sv.js");
|
||||
const locale_js_1 = require("./locale.js");
|
||||
exports.locales = {
|
||||
af: locale_af_js_1.af,
|
||||
ca: locale_ca_js_1.ca,
|
||||
da: locale_da_js_1.da,
|
||||
de: locale_de_js_1.de,
|
||||
en: locale_en_js_1.en,
|
||||
es: locale_es_js_1.es,
|
||||
euro: locale_euro_js_1.euro,
|
||||
fr: locale_fr_js_1.fr,
|
||||
hi: locale_hi_js_1.hi,
|
||||
it: locale_it_js_1.it,
|
||||
ko: locale_ko_js_1.ko,
|
||||
nb: locale_nb_js_1.nb,
|
||||
nn: locale_nn_js_1.nn,
|
||||
sv: locale_sv_js_1.sv,
|
||||
nemeth: locale_nemeth_js_1.nemeth
|
||||
};
|
||||
function setLocale() {
|
||||
const msgs = getLocale();
|
||||
setSubiso(msgs);
|
||||
if (msgs) {
|
||||
for (const key of Object.getOwnPropertyNames(msgs)) {
|
||||
locale_js_1.LOCALE[key] = msgs[key];
|
||||
}
|
||||
for (const [key, func] of Object.entries(msgs.CORRECTIONS)) {
|
||||
grammar_js_1.Grammar.getInstance().setCorrection(key, func);
|
||||
}
|
||||
}
|
||||
}
|
||||
function setSubiso(msg) {
|
||||
const subiso = engine_js_1.Engine.getInstance().subiso;
|
||||
if (msg.SUBISO.all.indexOf(subiso) === -1) {
|
||||
engine_js_1.Engine.getInstance().subiso = msg.SUBISO.default;
|
||||
}
|
||||
msg.SUBISO.current = engine_js_1.Engine.getInstance().subiso;
|
||||
}
|
||||
function getLocale() {
|
||||
const locale = variables_js_1.Variables.ensureLocale(engine_js_1.Engine.getInstance().locale, engine_js_1.Engine.getInstance().defaultLocale);
|
||||
engine_js_1.Engine.getInstance().locale = locale;
|
||||
return exports.locales[locale]();
|
||||
}
|
||||
function completeLocale(json) {
|
||||
const locale = exports.locales[json.locale];
|
||||
if (!locale) {
|
||||
console.error('Locale ' + json.locale + ' does not exist!');
|
||||
return;
|
||||
}
|
||||
const kind = json.kind.toUpperCase();
|
||||
const messages = json.messages;
|
||||
if (!messages)
|
||||
return;
|
||||
const loc = locale();
|
||||
for (const [key, value] of Object.entries(messages)) {
|
||||
loc[kind][key] = value;
|
||||
}
|
||||
}
|
||||
17
node_modules/speech-rule-engine/js/l10n/locale.d.ts
generated
vendored
Normal file
17
node_modules/speech-rule-engine/js/l10n/locale.d.ts
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
import { Alphabets, Functions, Messages, Numbers, SubIso } from './messages.js';
|
||||
import * as tr from './transformers.js';
|
||||
export interface Locale {
|
||||
FUNCTIONS: Functions;
|
||||
MESSAGES: Messages;
|
||||
ALPHABETS: Alphabets;
|
||||
NUMBERS: Numbers;
|
||||
COMBINERS?: {
|
||||
[key: string]: tr.Combiner;
|
||||
};
|
||||
CORRECTIONS?: {
|
||||
[key: string]: (a: string) => string;
|
||||
};
|
||||
SUBISO: SubIso;
|
||||
}
|
||||
export declare const LOCALE: Locale;
|
||||
export declare function createLocale(): Locale;
|
||||
17
node_modules/speech-rule-engine/js/l10n/locale.js
generated
vendored
Normal file
17
node_modules/speech-rule-engine/js/l10n/locale.js
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.LOCALE = void 0;
|
||||
exports.createLocale = createLocale;
|
||||
const messages_js_1 = require("./messages.js");
|
||||
exports.LOCALE = createLocale();
|
||||
function createLocale() {
|
||||
return {
|
||||
FUNCTIONS: (0, messages_js_1.FUNCTIONS)(),
|
||||
MESSAGES: (0, messages_js_1.MESSAGES)(),
|
||||
ALPHABETS: (0, messages_js_1.ALPHABETS)(),
|
||||
NUMBERS: (0, messages_js_1.NUMBERS)(),
|
||||
COMBINERS: {},
|
||||
CORRECTIONS: {},
|
||||
SUBISO: (0, messages_js_1.SUBISO)()
|
||||
};
|
||||
}
|
||||
10
node_modules/speech-rule-engine/js/l10n/locale_util.d.ts
generated
vendored
Normal file
10
node_modules/speech-rule-engine/js/l10n/locale_util.d.ts
generated
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
import { Combiner } from './transformers.js';
|
||||
export declare function nestingToString(count: number): string;
|
||||
export declare function combinePostfixIndex(postfix: string, index: string): string;
|
||||
export declare function localFont(font: string): string;
|
||||
export declare function localRole(role: string): string;
|
||||
export declare function localEnclose(enclose: string): string;
|
||||
export declare function localeFontCombiner(font: string | [string, string]): {
|
||||
font: string;
|
||||
combiner: Combiner;
|
||||
};
|
||||
51
node_modules/speech-rule-engine/js/l10n/locale_util.js
generated
vendored
Normal file
51
node_modules/speech-rule-engine/js/l10n/locale_util.js
generated
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.nestingToString = nestingToString;
|
||||
exports.combinePostfixIndex = combinePostfixIndex;
|
||||
exports.localFont = localFont;
|
||||
exports.localRole = localRole;
|
||||
exports.localEnclose = localEnclose;
|
||||
exports.localeFontCombiner = localeFontCombiner;
|
||||
const locale_js_1 = require("./locale.js");
|
||||
const transformers_js_1 = require("./transformers.js");
|
||||
function nestingToString(count) {
|
||||
switch (count) {
|
||||
case 1:
|
||||
return locale_js_1.LOCALE.MESSAGES.MS.ONCE || '';
|
||||
case 2:
|
||||
return locale_js_1.LOCALE.MESSAGES.MS.TWICE;
|
||||
default:
|
||||
return count.toString();
|
||||
}
|
||||
}
|
||||
function combinePostfixIndex(postfix, index) {
|
||||
return postfix === locale_js_1.LOCALE.MESSAGES.MS.ROOTINDEX ||
|
||||
postfix === locale_js_1.LOCALE.MESSAGES.MS.INDEX
|
||||
? postfix
|
||||
: postfix + ' ' + index;
|
||||
}
|
||||
function localFont(font) {
|
||||
return extractString(locale_js_1.LOCALE.MESSAGES.font[font], font);
|
||||
}
|
||||
function localRole(role) {
|
||||
return extractString(locale_js_1.LOCALE.MESSAGES.role[role], role);
|
||||
}
|
||||
function localEnclose(enclose) {
|
||||
return extractString(locale_js_1.LOCALE.MESSAGES.enclose[enclose], enclose);
|
||||
}
|
||||
function extractString(combiner, fallback) {
|
||||
if (combiner === undefined) {
|
||||
return fallback;
|
||||
}
|
||||
return typeof combiner === 'string' ? combiner : combiner[0];
|
||||
}
|
||||
function localeFontCombiner(font) {
|
||||
return typeof font === 'string'
|
||||
? { font: font, combiner: locale_js_1.LOCALE.ALPHABETS.combiner }
|
||||
: {
|
||||
font: font[0],
|
||||
combiner: locale_js_1.LOCALE.COMBINERS[font[1]] ||
|
||||
transformers_js_1.Combiners[font[1]] ||
|
||||
locale_js_1.LOCALE.ALPHABETS.combiner
|
||||
};
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_af.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_af.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function af(): Locale;
|
||||
37
node_modules/speech-rule-engine/js/l10n/locales/locale_af.js
generated
vendored
Normal file
37
node_modules/speech-rule-engine/js/l10n/locales/locale_af.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.af = af;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const numbers_af_js_1 = require("../numbers/numbers_af.js");
|
||||
const tr = require("../transformers.js");
|
||||
const germanPostfixCombiner = function (letter, font, cap) {
|
||||
letter = !cap ? letter : cap + ' ' + letter;
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
let locale = null;
|
||||
function af() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_af_js_1.NUMBERS;
|
||||
loc.COMBINERS['germanPostfix'] = germanPostfixCombiner;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.plural = (unit) => {
|
||||
return /.*s$/.test(unit) ? unit : unit + 's';
|
||||
};
|
||||
loc.FUNCTIONS.fontRegexp = function (font) {
|
||||
return new RegExp('((^' + font + ' )|( ' + font + '$))');
|
||||
};
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_af_js_1.NUMBERS.numberToWords;
|
||||
loc.CORRECTIONS.article = (name) => {
|
||||
return grammar_js_1.Grammar.getInstance().getParameter('noArticle') ? '' : name;
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_ca.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_ca.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function ca(): Locale;
|
||||
68
node_modules/speech-rule-engine/js/l10n/locales/locale_ca.js
generated
vendored
Normal file
68
node_modules/speech-rule-engine/js/l10n/locales/locale_ca.js
generated
vendored
Normal file
@@ -0,0 +1,68 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ca = ca;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_ca_js_1 = require("../numbers/numbers_ca.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
const sansserifCombiner = function (letter, font, cap) {
|
||||
letter = 'sans serif ' + (cap ? cap + ' ' + letter : letter);
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
let locale = null;
|
||||
function ca() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_ca_js_1.NUMBERS;
|
||||
loc.COMBINERS['sansserif'] = sansserifCombiner;
|
||||
loc.FUNCTIONS.fracNestDepth = (_node) => false;
|
||||
loc.FUNCTIONS.combineRootIndex = locale_util_js_1.combinePostfixIndex;
|
||||
loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => a + c;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font + ' ');
|
||||
loc.FUNCTIONS.plural = (unit) => {
|
||||
if (/.*os$/.test(unit)) {
|
||||
return unit + 'sos';
|
||||
}
|
||||
if (/.*s$/.test(unit)) {
|
||||
return unit + 'os';
|
||||
}
|
||||
if (/.*ga$/.test(unit)) {
|
||||
return unit.slice(0, -2) + 'gues';
|
||||
}
|
||||
if (/.*ça$/.test(unit)) {
|
||||
return unit.slice(0, -2) + 'ces';
|
||||
}
|
||||
if (/.*ca$/.test(unit)) {
|
||||
return unit.slice(0, -2) + 'ques';
|
||||
}
|
||||
if (/.*ja$/.test(unit)) {
|
||||
return unit.slice(0, -2) + 'ges';
|
||||
}
|
||||
if (/.*qua$/.test(unit)) {
|
||||
return unit.slice(0, -3) + 'qües';
|
||||
}
|
||||
if (/.*a$/.test(unit)) {
|
||||
return unit.slice(0, -1) + 'es';
|
||||
}
|
||||
if (/.*(e|i)$/.test(unit)) {
|
||||
return unit + 'ns';
|
||||
}
|
||||
if (/.*í$/.test(unit)) {
|
||||
return unit.slice(0, -1) + 'ins';
|
||||
}
|
||||
return unit + 's';
|
||||
};
|
||||
loc.FUNCTIONS.si = (prefix, unit) => {
|
||||
if (unit.match(/^metre/)) {
|
||||
prefix = prefix.replace(/a$/, 'à').replace(/o$/, 'ò').replace(/i$/, 'í');
|
||||
}
|
||||
return prefix + unit;
|
||||
};
|
||||
loc.ALPHABETS.combiner = transformers_js_1.Combiners.prefixCombiner;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_da.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_da.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function da(): Locale;
|
||||
27
node_modules/speech-rule-engine/js/l10n/locales/locale_da.js
generated
vendored
Normal file
27
node_modules/speech-rule-engine/js/l10n/locales/locale_da.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.da = da;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_da_js_1 = require("../numbers/numbers_da.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function da() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_da_js_1.NUMBERS;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => {
|
||||
return font === loc.ALPHABETS.capPrefix['default']
|
||||
? RegExp('^' + font + ' ')
|
||||
: RegExp(' ' + font + '$');
|
||||
};
|
||||
loc.ALPHABETS.combiner = tr.Combiners.postfixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_da_js_1.NUMBERS.numberToWords;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_de.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_de.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function de(): Locale;
|
||||
85
node_modules/speech-rule-engine/js/l10n/locales/locale_de.js
generated
vendored
Normal file
85
node_modules/speech-rule-engine/js/l10n/locales/locale_de.js
generated
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.de = de;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const numbers_de_js_1 = require("../numbers/numbers_de.js");
|
||||
const germanPrefixCombiner = function (letter, font, cap) {
|
||||
if (cap === 's') {
|
||||
font = font
|
||||
.split(' ')
|
||||
.map(function (x) {
|
||||
return x.replace(/s$/, '');
|
||||
})
|
||||
.join(' ');
|
||||
cap = '';
|
||||
}
|
||||
letter = cap ? cap + ' ' + letter : letter;
|
||||
return font ? font + ' ' + letter : letter;
|
||||
};
|
||||
const germanPostfixCombiner = function (letter, font, cap) {
|
||||
letter = !cap || cap === 's' ? letter : cap + ' ' + letter;
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
let locale = null;
|
||||
function de() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_de_js_1.NUMBERS;
|
||||
loc.COMBINERS['germanPostfix'] = germanPostfixCombiner;
|
||||
loc.ALPHABETS.combiner = germanPrefixCombiner;
|
||||
loc.FUNCTIONS.radicalNestDepth = (x) => {
|
||||
return x > 1 ? loc.NUMBERS.numberToWords(x) + 'fach' : '';
|
||||
};
|
||||
loc.FUNCTIONS.combineRootIndex = (postfix, index) => {
|
||||
const root = index ? index + 'wurzel' : '';
|
||||
return postfix.replace('Wurzel', root);
|
||||
};
|
||||
loc.FUNCTIONS.combineNestedRadical = (a, b, c) => {
|
||||
a = c.match(/exponent$/) ? a + 'r' : a;
|
||||
const count = (b ? b + ' ' : '') + a;
|
||||
return c.match(/ /) ? c.replace(/ /, ' ' + count + ' ') : count + ' ' + c;
|
||||
};
|
||||
loc.FUNCTIONS.fontRegexp = function (font) {
|
||||
font = font
|
||||
.split(' ')
|
||||
.map(function (x) {
|
||||
return x.replace(/s$/, '(|s)');
|
||||
})
|
||||
.join(' ');
|
||||
return new RegExp('((^' + font + ' )|( ' + font + '$))');
|
||||
};
|
||||
loc.CORRECTIONS.correctOne = (num) => num.replace(/^eins$/, 'ein');
|
||||
loc.CORRECTIONS.localFontNumber = (font) => {
|
||||
const realFont = (0, locale_util_js_1.localFont)(font);
|
||||
return realFont
|
||||
.split(' ')
|
||||
.map(function (x) {
|
||||
return x.replace(/s$/, '');
|
||||
})
|
||||
.join(' ');
|
||||
};
|
||||
loc.CORRECTIONS.lowercase = (name) => name.toLowerCase();
|
||||
loc.CORRECTIONS.article = (name) => {
|
||||
const decl = grammar_js_1.Grammar.getInstance().getParameter('case');
|
||||
const plural = grammar_js_1.Grammar.getInstance().getParameter('plural');
|
||||
if (decl === 'dative') {
|
||||
return { der: 'dem', die: plural ? 'den' : 'der', das: 'dem' }[name];
|
||||
}
|
||||
return name;
|
||||
};
|
||||
loc.CORRECTIONS.masculine = (name) => {
|
||||
const decl = grammar_js_1.Grammar.getInstance().getParameter('case');
|
||||
if (decl === 'dative') {
|
||||
return name + 'n';
|
||||
}
|
||||
return name;
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_en.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_en.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function en(): Locale;
|
||||
29
node_modules/speech-rule-engine/js/l10n/locales/locale_en.js
generated
vendored
Normal file
29
node_modules/speech-rule-engine/js/l10n/locales/locale_en.js
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.en = en;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_en_js_1 = require("../numbers/numbers_en.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function en() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_en_js_1.NUMBERS;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.plural = (unit) => {
|
||||
return /.*s$/.test(unit) ? unit : unit + 's';
|
||||
};
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_en_js_1.NUMBERS.numberToWords;
|
||||
loc.CORRECTIONS.article = (name) => {
|
||||
return grammar_js_1.Grammar.getInstance().getParameter('noArticle') ? '' : name;
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_es.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_es.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function es(): Locale;
|
||||
53
node_modules/speech-rule-engine/js/l10n/locales/locale_es.js
generated
vendored
Normal file
53
node_modules/speech-rule-engine/js/l10n/locales/locale_es.js
generated
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.es = es;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_es_js_1 = require("../numbers/numbers_es.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
const sansserifCombiner = function (letter, font, cap) {
|
||||
letter = 'sans serif ' + (cap ? cap + ' ' + letter : letter);
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
let locale = null;
|
||||
function es() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_es_js_1.NUMBERS;
|
||||
loc.COMBINERS['sansserif'] = sansserifCombiner;
|
||||
loc.FUNCTIONS.fracNestDepth = (_node) => false;
|
||||
loc.FUNCTIONS.combineRootIndex = locale_util_js_1.combinePostfixIndex;
|
||||
loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => a + c;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font + ' ');
|
||||
loc.FUNCTIONS.plural = (unit) => {
|
||||
if (/.*(a|e|i|o|u)$/.test(unit)) {
|
||||
return unit + 's';
|
||||
}
|
||||
if (/.*z$/.test(unit)) {
|
||||
return unit.slice(0, -1) + 'ces';
|
||||
}
|
||||
if (/.*c$/.test(unit)) {
|
||||
return unit.slice(0, -1) + 'ques';
|
||||
}
|
||||
if (/.*g$/.test(unit)) {
|
||||
return unit + 'ues';
|
||||
}
|
||||
if (/.*\u00f3n$/.test(unit)) {
|
||||
return unit.slice(0, -2) + 'ones';
|
||||
}
|
||||
return unit + 'es';
|
||||
};
|
||||
loc.FUNCTIONS.si = (prefix, unit) => {
|
||||
if (unit.match(/^metro/)) {
|
||||
prefix = prefix.replace(/a$/, 'á').replace(/o$/, 'ó').replace(/i$/, 'í');
|
||||
}
|
||||
return prefix + unit;
|
||||
};
|
||||
loc.ALPHABETS.combiner = transformers_js_1.Combiners.prefixCombiner;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_euro.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_euro.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function euro(): Locale;
|
||||
11
node_modules/speech-rule-engine/js/l10n/locales/locale_euro.js
generated
vendored
Normal file
11
node_modules/speech-rule-engine/js/l10n/locales/locale_euro.js
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.euro = euro;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
let locale = null;
|
||||
function euro() {
|
||||
if (!locale) {
|
||||
locale = (0, locale_js_1.createLocale)();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_fr.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_fr.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function fr(): Locale;
|
||||
37
node_modules/speech-rule-engine/js/l10n/locales/locale_fr.js
generated
vendored
Normal file
37
node_modules/speech-rule-engine/js/l10n/locales/locale_fr.js
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.fr = fr;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_fr_js_1 = require("../numbers/numbers_fr.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
let locale = null;
|
||||
function fr() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_fr_js_1.NUMBERS;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.combineRootIndex = locale_util_js_1.combinePostfixIndex;
|
||||
loc.FUNCTIONS.combineNestedFraction = (a, b, c) => c.replace(/ $/g, '') + b + a;
|
||||
loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => c + ' ' + a;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => RegExp(' (en |)' + font + '$');
|
||||
loc.FUNCTIONS.plural = (unit) => {
|
||||
return /.*s$/.test(unit) ? unit : unit + 's';
|
||||
};
|
||||
loc.CORRECTIONS.article = (name) => {
|
||||
return grammar_js_1.Grammar.getInstance().getParameter('noArticle') ? '' : name;
|
||||
};
|
||||
loc.ALPHABETS.combiner = transformers_js_1.Combiners.romanceCombiner;
|
||||
loc.SUBISO = {
|
||||
default: 'fr',
|
||||
current: 'fr',
|
||||
all: ['fr', 'be', 'ch']
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_hi.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_hi.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function hi(): Locale;
|
||||
21
node_modules/speech-rule-engine/js/l10n/locales/locale_hi.js
generated
vendored
Normal file
21
node_modules/speech-rule-engine/js/l10n/locales/locale_hi.js
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.hi = hi;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const numbers_hi_js_1 = require("../numbers/numbers_hi.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
let locale = null;
|
||||
function hi() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_hi_js_1.NUMBERS;
|
||||
loc.ALPHABETS.combiner = transformers_js_1.Combiners.prefixCombiner;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_it.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_it.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function it(): Locale;
|
||||
33
node_modules/speech-rule-engine/js/l10n/locales/locale_it.js
generated
vendored
Normal file
33
node_modules/speech-rule-engine/js/l10n/locales/locale_it.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.it = it;
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const numbers_it_js_1 = require("../numbers/numbers_it.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
const italianPostfixCombiner = function (letter, font, cap) {
|
||||
if (letter.match(/^[a-zA-Z]$/)) {
|
||||
font = font.replace('cerchiato', 'cerchiata');
|
||||
}
|
||||
letter = cap ? letter + ' ' + cap : letter;
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
let locale = null;
|
||||
function it() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_it_js_1.NUMBERS;
|
||||
loc.COMBINERS['italianPostfix'] = italianPostfixCombiner;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.combineRootIndex = locale_util_js_1.combinePostfixIndex;
|
||||
loc.FUNCTIONS.combineNestedFraction = (a, b, c) => c.replace(/ $/g, '') + b + a;
|
||||
loc.FUNCTIONS.combineNestedRadical = (a, _b, c) => c + ' ' + a;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => RegExp(' (en |)' + font + '$');
|
||||
loc.ALPHABETS.combiner = transformers_js_1.Combiners.romanceCombiner;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_ko.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_ko.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function ko(): Locale;
|
||||
52
node_modules/speech-rule-engine/js/l10n/locales/locale_ko.js
generated
vendored
Normal file
52
node_modules/speech-rule-engine/js/l10n/locales/locale_ko.js
generated
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.ko = ko;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_ko_js_1 = require("../numbers/numbers_ko.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function ko() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_ko_js_1.NUMBERS;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.plural = function (unit) {
|
||||
return unit;
|
||||
};
|
||||
loc.FUNCTIONS.si = (prefix, unit) => {
|
||||
return prefix + unit;
|
||||
};
|
||||
loc.FUNCTIONS.combineRootIndex = function (index, postfix) {
|
||||
return index + postfix;
|
||||
};
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_ko_js_1.NUMBERS.numberToWords;
|
||||
loc.CORRECTIONS.postposition = (name) => {
|
||||
if (['같다', '는', '와', '를', '로'].includes(name))
|
||||
return name;
|
||||
const char = name.slice(-1);
|
||||
const value = (char.charCodeAt(0) - 44032) % 28;
|
||||
let final = value > 0 ? true : false;
|
||||
if (char.match(/[r,l,n,m,1,3,6,7,8,0]/i))
|
||||
final = true;
|
||||
grammar_js_1.Grammar.getInstance().setParameter('final', final);
|
||||
return name;
|
||||
};
|
||||
loc.CORRECTIONS.article = (name) => {
|
||||
const final = grammar_js_1.Grammar.getInstance().getParameter('final');
|
||||
if (final)
|
||||
grammar_js_1.Grammar.getInstance().setParameter('final', false);
|
||||
if (name === '같다')
|
||||
name = '는';
|
||||
const temp = { 는: '은', 와: '과', 를: '을', 로: '으로' }[name];
|
||||
return temp !== undefined && final ? temp : name;
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nb.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nb.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function nb(): Locale;
|
||||
22
node_modules/speech-rule-engine/js/l10n/locales/locale_nb.js
generated
vendored
Normal file
22
node_modules/speech-rule-engine/js/l10n/locales/locale_nb.js
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.nb = nb;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_nn_js_1 = require("../numbers/numbers_nn.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function nb() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_nn_js_1.NUMBERS;
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_nn_js_1.NUMBERS.numberToWords;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nemeth.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nemeth.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function nemeth(): Locale;
|
||||
56
node_modules/speech-rule-engine/js/l10n/locales/locale_nemeth.js
generated
vendored
Normal file
56
node_modules/speech-rule-engine/js/l10n/locales/locale_nemeth.js
generated
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.nemeth = nemeth;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const numbers_nemeth_js_1 = require("../numbers/numbers_nemeth.js");
|
||||
const transformers_js_1 = require("../transformers.js");
|
||||
const simpleEnglish = function (letter) {
|
||||
return letter.match(RegExp('^' + locale.ALPHABETS.languagePrefix.english))
|
||||
? letter.slice(1)
|
||||
: letter;
|
||||
};
|
||||
const postfixCombiner = function (letter, font, _number) {
|
||||
letter = simpleEnglish(letter);
|
||||
return font ? letter + font : letter;
|
||||
};
|
||||
const germanCombiner = function (letter, font, _cap) {
|
||||
return font + simpleEnglish(letter);
|
||||
};
|
||||
const embellishCombiner = function (letter, font, num) {
|
||||
letter = simpleEnglish(letter);
|
||||
return font + (num ? num : '') + letter + '⠻';
|
||||
};
|
||||
const doubleEmbellishCombiner = function (letter, font, num) {
|
||||
letter = simpleEnglish(letter);
|
||||
return font + (num ? num : '') + letter + '⠻⠻';
|
||||
};
|
||||
const parensCombiner = function (letter, font, _number) {
|
||||
letter = simpleEnglish(letter);
|
||||
return font + letter + '⠾';
|
||||
};
|
||||
let locale = null;
|
||||
function nemeth() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_nemeth_js_1.NUMBERS;
|
||||
loc.COMBINERS = {
|
||||
postfixCombiner: postfixCombiner,
|
||||
germanCombiner: germanCombiner,
|
||||
embellishCombiner: embellishCombiner,
|
||||
doubleEmbellishCombiner: doubleEmbellishCombiner,
|
||||
parensCombiner: parensCombiner
|
||||
};
|
||||
loc.FUNCTIONS.fracNestDepth = (_node) => false;
|
||||
loc.FUNCTIONS.fontRegexp = (font) => RegExp('^' + font);
|
||||
loc.FUNCTIONS.si = transformers_js_1.identityTransformer;
|
||||
loc.ALPHABETS.combiner = (letter, font, num) => {
|
||||
return font ? font + num + letter : simpleEnglish(letter);
|
||||
};
|
||||
loc.ALPHABETS.digitTrans = { default: numbers_nemeth_js_1.NUMBERS.numberToWords };
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nn.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_nn.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function nn(): Locale;
|
||||
27
node_modules/speech-rule-engine/js/l10n/locales/locale_nn.js
generated
vendored
Normal file
27
node_modules/speech-rule-engine/js/l10n/locales/locale_nn.js
generated
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.nn = nn;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_nn_js_1 = require("../numbers/numbers_nn.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function nn() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_nn_js_1.NUMBERS;
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_nn_js_1.NUMBERS.numberToWords;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.SUBISO = {
|
||||
default: '',
|
||||
current: '',
|
||||
all: ['', 'alt']
|
||||
};
|
||||
return loc;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/locales/locale_sv.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/locales/locale_sv.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Locale } from '../locale.js';
|
||||
export declare function sv(): Locale;
|
||||
26
node_modules/speech-rule-engine/js/l10n/locales/locale_sv.js
generated
vendored
Normal file
26
node_modules/speech-rule-engine/js/l10n/locales/locale_sv.js
generated
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.sv = sv;
|
||||
const locale_js_1 = require("../locale.js");
|
||||
const locale_util_js_1 = require("../locale_util.js");
|
||||
const numbers_sv_js_1 = require("../numbers/numbers_sv.js");
|
||||
const tr = require("../transformers.js");
|
||||
let locale = null;
|
||||
function sv() {
|
||||
if (!locale) {
|
||||
locale = create();
|
||||
}
|
||||
return locale;
|
||||
}
|
||||
function create() {
|
||||
const loc = (0, locale_js_1.createLocale)();
|
||||
loc.NUMBERS = numbers_sv_js_1.NUMBERS;
|
||||
loc.FUNCTIONS.radicalNestDepth = locale_util_js_1.nestingToString;
|
||||
loc.FUNCTIONS.fontRegexp = function (font) {
|
||||
return new RegExp('((^' + font + ' )|( ' + font + '$))');
|
||||
};
|
||||
loc.ALPHABETS.combiner = tr.Combiners.prefixCombiner;
|
||||
loc.ALPHABETS.digitTrans.default = numbers_sv_js_1.NUMBERS.numberToWords;
|
||||
loc.CORRECTIONS.correctOne = (num) => num.replace(/^ett$/, 'en');
|
||||
return loc;
|
||||
}
|
||||
88
node_modules/speech-rule-engine/js/l10n/messages.d.ts
generated
vendored
Normal file
88
node_modules/speech-rule-engine/js/l10n/messages.d.ts
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
import * as tr from './transformers.js';
|
||||
export interface Messages {
|
||||
MS: {
|
||||
[msg: string]: string;
|
||||
};
|
||||
MSroots: {
|
||||
[msg: string]: string;
|
||||
};
|
||||
font: {
|
||||
[msg: string]: string | [string, string];
|
||||
};
|
||||
embellish: {
|
||||
[msg: string]: string | [string, string];
|
||||
};
|
||||
role: {
|
||||
[msg: string]: string | [string, string];
|
||||
};
|
||||
enclose: {
|
||||
[msg: string]: string | [string, string];
|
||||
};
|
||||
navigate: {
|
||||
[msg: string]: string;
|
||||
};
|
||||
regexp: {
|
||||
[msg: string]: string;
|
||||
};
|
||||
unitTimes: string;
|
||||
}
|
||||
export declare function MESSAGES(): Messages;
|
||||
export interface Numbers {
|
||||
zero?: string;
|
||||
ones?: string[];
|
||||
tens?: string[];
|
||||
large?: string[];
|
||||
special?: {
|
||||
[key: string]: string | string[];
|
||||
};
|
||||
wordOrdinal?: tr.Transformer;
|
||||
numericOrdinal?: tr.Transformer;
|
||||
numberToWords?: tr.Transformer;
|
||||
numberToOrdinal?: tr.GrammarCase;
|
||||
vulgarSep?: string;
|
||||
numSep?: string;
|
||||
}
|
||||
export declare function NUMBERS(numbers?: Numbers): Numbers;
|
||||
export interface Alphabets {
|
||||
latinSmall: string[];
|
||||
latinCap: string[];
|
||||
greekSmall: string[];
|
||||
greekCap: string[];
|
||||
capPrefix: {
|
||||
[key: string]: string;
|
||||
};
|
||||
smallPrefix: {
|
||||
[key: string]: string;
|
||||
};
|
||||
digitPrefix: {
|
||||
[key: string]: string;
|
||||
};
|
||||
languagePrefix?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
digitTrans: {
|
||||
[key: string]: tr.Transformer;
|
||||
};
|
||||
letterTrans: {
|
||||
[key: string]: tr.Transformer;
|
||||
};
|
||||
combiner: tr.Combiner;
|
||||
}
|
||||
export declare function ALPHABETS(): Alphabets;
|
||||
export interface Functions {
|
||||
fracNestDepth: (node: Element) => boolean;
|
||||
radicalNestDepth: (count: number) => string;
|
||||
combineRootIndex: (name: string, index: string) => string;
|
||||
combineNestedFraction: tr.Combiner;
|
||||
combineNestedRadical: tr.Combiner;
|
||||
fontRegexp: (font: string) => RegExp;
|
||||
si: tr.SiCombiner;
|
||||
plural: tr.Transformer;
|
||||
}
|
||||
export declare function FUNCTIONS(): Functions;
|
||||
export interface SubIso {
|
||||
default: string;
|
||||
current: string;
|
||||
all: string[];
|
||||
}
|
||||
export declare function SUBISO(): SubIso;
|
||||
80
node_modules/speech-rule-engine/js/l10n/messages.js
generated
vendored
Normal file
80
node_modules/speech-rule-engine/js/l10n/messages.js
generated
vendored
Normal file
@@ -0,0 +1,80 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.MESSAGES = MESSAGES;
|
||||
exports.NUMBERS = NUMBERS;
|
||||
exports.ALPHABETS = ALPHABETS;
|
||||
exports.FUNCTIONS = FUNCTIONS;
|
||||
exports.SUBISO = SUBISO;
|
||||
const tr = require("./transformers.js");
|
||||
function MESSAGES() {
|
||||
return {
|
||||
MS: {},
|
||||
MSroots: {},
|
||||
font: {},
|
||||
embellish: {},
|
||||
role: {},
|
||||
enclose: {},
|
||||
navigate: {},
|
||||
regexp: {},
|
||||
unitTimes: ''
|
||||
};
|
||||
}
|
||||
function NUMBERS(numbers = {}) {
|
||||
return Object.assign({
|
||||
zero: 'zero',
|
||||
ones: [],
|
||||
tens: [],
|
||||
large: [],
|
||||
special: {},
|
||||
wordOrdinal: tr.identityTransformer,
|
||||
numericOrdinal: tr.identityTransformer,
|
||||
numberToWords: tr.identityTransformer,
|
||||
numberToOrdinal: tr.pluralCase,
|
||||
vulgarSep: ' ',
|
||||
numSep: ' '
|
||||
}, numbers);
|
||||
}
|
||||
function ALPHABETS() {
|
||||
return {
|
||||
latinSmall: [],
|
||||
latinCap: [],
|
||||
greekSmall: [],
|
||||
greekCap: [],
|
||||
capPrefix: { default: '' },
|
||||
smallPrefix: { default: '' },
|
||||
digitPrefix: { default: '' },
|
||||
languagePrefix: {},
|
||||
digitTrans: {
|
||||
default: tr.identityTransformer,
|
||||
mathspeak: tr.identityTransformer,
|
||||
clearspeak: tr.identityTransformer
|
||||
},
|
||||
letterTrans: { default: tr.identityTransformer },
|
||||
combiner: (letter, _font, _cap) => {
|
||||
return letter;
|
||||
}
|
||||
};
|
||||
}
|
||||
function FUNCTIONS() {
|
||||
return {
|
||||
fracNestDepth: (n) => tr.vulgarFractionSmall(n, 10, 100),
|
||||
radicalNestDepth: (_count) => '',
|
||||
combineRootIndex: function (postfix, _index) {
|
||||
return postfix;
|
||||
},
|
||||
combineNestedFraction: tr.Combiners.identityCombiner,
|
||||
combineNestedRadical: tr.Combiners.identityCombiner,
|
||||
fontRegexp: function (font) {
|
||||
return new RegExp('^' + font.split(/ |-/).join('( |-)') + '( |-)');
|
||||
},
|
||||
si: tr.siCombiner,
|
||||
plural: tr.identityTransformer
|
||||
};
|
||||
}
|
||||
function SUBISO() {
|
||||
return {
|
||||
default: '',
|
||||
current: '',
|
||||
all: []
|
||||
};
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_af.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_af.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
87
node_modules/speech-rule-engine/js/l10n/numbers/numbers_af.js
generated
vendored
Normal file
87
node_modules/speech-rule-engine/js/l10n/numbers/numbers_af.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
let ones = exports.NUMBERS.ones[Math.floor(n / 100)];
|
||||
str += ones ? ones + exports.NUMBERS.numSep + 'honderd' : '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
ones = exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
const tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
ones = exports.NUMBERS.ones[n % 10];
|
||||
str += ones ? ones + '-en-' + tens : tens;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const hund = hundredsToWords_(num % 1000);
|
||||
if (pos) {
|
||||
const large = exports.NUMBERS.large[pos];
|
||||
str = hund + exports.NUMBERS.numSep + large + (str ? exports.NUMBERS.numSep + str : '');
|
||||
}
|
||||
else {
|
||||
str = hund + (str ? exports.NUMBERS.numSep + str : '');
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 1) {
|
||||
return 'enkel';
|
||||
}
|
||||
if (num === 2) {
|
||||
return plural ? 'helftes' : 'helfte';
|
||||
}
|
||||
if (num === 4) {
|
||||
return plural ? 'kwarte' : 'kwart';
|
||||
}
|
||||
return wordOrdinal(num) + (plural ? 's' : '');
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
if (num === 1) {
|
||||
return 'eerste';
|
||||
}
|
||||
if (num === 3) {
|
||||
return 'derde';
|
||||
}
|
||||
if (num === 8) {
|
||||
return 'agste';
|
||||
}
|
||||
if (num === 9) {
|
||||
return 'negende';
|
||||
}
|
||||
const ordinal = numberToWords(num);
|
||||
return ordinal + (num < 19 ? 'de' : 'ste');
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
return num.toString() + '.';
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ca.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ca.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
91
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ca.js
generated
vendored
Normal file
91
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ca.js
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function tensToWords_(num) {
|
||||
const n = num % 100;
|
||||
if (n < 20) {
|
||||
return exports.NUMBERS.ones[n];
|
||||
}
|
||||
const ten = Math.floor(n / 10);
|
||||
const tens = exports.NUMBERS.tens[ten];
|
||||
const ones = exports.NUMBERS.ones[n % 10];
|
||||
return tens && ones ? tens + (ten === 2 ? '-i-' : '-') + ones : tens || ones;
|
||||
}
|
||||
function hundredsToWords_(num) {
|
||||
const n = num % 1000;
|
||||
const hundred = Math.floor(n / 100);
|
||||
const hundreds = hundred
|
||||
? hundred === 1
|
||||
? 'cent'
|
||||
: exports.NUMBERS.ones[hundred] + '-cents'
|
||||
: '';
|
||||
const tens = tensToWords_(n % 100);
|
||||
return hundreds && tens ? hundreds + exports.NUMBERS.numSep + tens : hundreds || tens;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % (pos > 1 ? 1000000 : 1000);
|
||||
if (hundreds) {
|
||||
let large = exports.NUMBERS.large[pos];
|
||||
if (!pos) {
|
||||
str = hundredsToWords_(hundreds);
|
||||
}
|
||||
else if (pos === 1) {
|
||||
str =
|
||||
(hundreds === 1 ? '' : hundredsToWords_(hundreds) + exports.NUMBERS.numSep) +
|
||||
large +
|
||||
(str ? exports.NUMBERS.numSep + str : '');
|
||||
}
|
||||
else {
|
||||
const thousands = numberToWords(hundreds);
|
||||
large = hundreds === 1 ? large : large.replace(/\u00f3$/, 'ons');
|
||||
str =
|
||||
thousands +
|
||||
exports.NUMBERS.numSep +
|
||||
large +
|
||||
(str ? exports.NUMBERS.numSep + str : '');
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / (pos > 1 ? 1000000 : 1000));
|
||||
pos++;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToOrdinal(num, _plural) {
|
||||
if (num > 1999) {
|
||||
return numericOrdinal(num);
|
||||
}
|
||||
if (num <= 10) {
|
||||
return exports.NUMBERS.special.onesOrdinals[num - 1];
|
||||
}
|
||||
const result = numberToWords(num);
|
||||
if (result.match(/mil$/)) {
|
||||
return result.replace(/mil$/, 'mil·lèsima');
|
||||
}
|
||||
if (result.match(/u$/)) {
|
||||
return result.replace(/u$/, 'vena');
|
||||
}
|
||||
if (result.match(/a$/)) {
|
||||
return result.replace(/a$/, 'ena');
|
||||
}
|
||||
return result + (result.match(/e$/) ? 'na' : 'ena');
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
return num.toString() + (gender === 'f' ? 'a' : 'n');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_da.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_da.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
87
node_modules/speech-rule-engine/js/l10n/numbers/numbers_da.js
generated
vendored
Normal file
87
node_modules/speech-rule-engine/js/l10n/numbers/numbers_da.js
generated
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function onePrefix_(num, mill = false) {
|
||||
return num === exports.NUMBERS.ones[1] ? (mill ? 'et' : 'en') : num;
|
||||
}
|
||||
function hundredsToWords_(num, ordinal = false) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
let ones = exports.NUMBERS.ones[Math.floor(n / 100)];
|
||||
str += ones ? onePrefix_(ones, true) + ' hundrede' : '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? ' og ' : '';
|
||||
ones = ordinal ? exports.NUMBERS.special.smallOrdinals[n] : exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
const tens = ordinal
|
||||
? exports.NUMBERS.special.tensOrdinals[Math.floor(n / 10)]
|
||||
: exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
ones = exports.NUMBERS.ones[n % 10];
|
||||
str += ones ? onePrefix_(ones) + 'og' + tens : tens;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num, ordinal = false) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const hund = hundredsToWords_(hundreds, ordinal && !pos);
|
||||
if (pos) {
|
||||
const large = exports.NUMBERS.large[pos];
|
||||
const plural = hundreds > 1 ? 'er' : '';
|
||||
str =
|
||||
onePrefix_(hund, pos <= 1) +
|
||||
' ' +
|
||||
large +
|
||||
plural +
|
||||
(str ? ' og ' : '') +
|
||||
str;
|
||||
}
|
||||
else {
|
||||
str = onePrefix_(hund) + str;
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 1) {
|
||||
return plural ? 'hel' : 'hele';
|
||||
}
|
||||
if (num === 2) {
|
||||
return plural ? 'halv' : 'halve';
|
||||
}
|
||||
return wordOrdinal(num) + (plural ? 'dele' : 'del');
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
if (num % 100) {
|
||||
return numberToWords(num, true);
|
||||
}
|
||||
const ordinal = numberToWords(num);
|
||||
return ordinal.match(/e$/) ? ordinal : ordinal + 'e';
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
return num.toString() + '.';
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_de.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_de.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
88
node_modules/speech-rule-engine/js/l10n/numbers/numbers_de.js
generated
vendored
Normal file
88
node_modules/speech-rule-engine/js/l10n/numbers/numbers_de.js
generated
vendored
Normal file
@@ -0,0 +1,88 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function onePrefix_(num, mill = false) {
|
||||
return num === exports.NUMBERS.ones[1] ? (mill ? 'eine' : 'ein') : num;
|
||||
}
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
let ones = exports.NUMBERS.ones[Math.floor(n / 100)];
|
||||
str += ones ? onePrefix_(ones) + 'hundert' : '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
ones = exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
const tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
ones = exports.NUMBERS.ones[n % 10];
|
||||
str += ones ? onePrefix_(ones) + 'und' + tens : tens;
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const hund = hundredsToWords_(num % 1000);
|
||||
if (pos) {
|
||||
const large = exports.NUMBERS.large[pos];
|
||||
const plural = pos > 1 && hundreds > 1 ? (large.match(/e$/) ? 'n' : 'en') : '';
|
||||
str = onePrefix_(hund, pos > 1) + large + plural + str;
|
||||
}
|
||||
else {
|
||||
str = onePrefix_(hund, pos > 1) + str;
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/ein$/, 'eins');
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 1) {
|
||||
return 'eintel';
|
||||
}
|
||||
if (num === 2) {
|
||||
return plural ? 'halbe' : 'halb';
|
||||
}
|
||||
return wordOrdinal(num) + 'l';
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
if (num === 1) {
|
||||
return 'erste';
|
||||
}
|
||||
if (num === 3) {
|
||||
return 'dritte';
|
||||
}
|
||||
if (num === 7) {
|
||||
return 'siebte';
|
||||
}
|
||||
if (num === 8) {
|
||||
return 'achte';
|
||||
}
|
||||
const ordinal = numberToWords(num);
|
||||
return ordinal + (num < 19 ? 'te' : 'ste');
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
return num.toString() + '.';
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_en.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_en.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
106
node_modules/speech-rule-engine/js/l10n/numbers/numbers_en.js
generated
vendored
Normal file
106
node_modules/speech-rule-engine/js/l10n/numbers/numbers_en.js
generated
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 100)]
|
||||
? exports.NUMBERS.ones[Math.floor(n / 100)] + exports.NUMBERS.numSep + 'hundred'
|
||||
: '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
str +=
|
||||
exports.NUMBERS.ones[n] ||
|
||||
exports.NUMBERS.tens[Math.floor(n / 10)] +
|
||||
(n % 10 ? exports.NUMBERS.numSep + exports.NUMBERS.ones[n % 10] : '');
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
str =
|
||||
hundredsToWords_(num % 1000) +
|
||||
(pos ? '-' + exports.NUMBERS.large[pos] + '-' : '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/-$/, '');
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 1) {
|
||||
return plural ? 'oneths' : 'oneth';
|
||||
}
|
||||
if (num === 2) {
|
||||
return plural ? 'halves' : 'half';
|
||||
}
|
||||
const ordinal = wordOrdinal(num);
|
||||
return plural ? ordinal + 's' : ordinal;
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
let ordinal = numberToWords(num);
|
||||
if (ordinal.match(/one$/)) {
|
||||
ordinal = ordinal.slice(0, -3) + 'first';
|
||||
}
|
||||
else if (ordinal.match(/two$/)) {
|
||||
ordinal = ordinal.slice(0, -3) + 'second';
|
||||
}
|
||||
else if (ordinal.match(/three$/)) {
|
||||
ordinal = ordinal.slice(0, -5) + 'third';
|
||||
}
|
||||
else if (ordinal.match(/five$/)) {
|
||||
ordinal = ordinal.slice(0, -4) + 'fifth';
|
||||
}
|
||||
else if (ordinal.match(/eight$/)) {
|
||||
ordinal = ordinal.slice(0, -5) + 'eighth';
|
||||
}
|
||||
else if (ordinal.match(/nine$/)) {
|
||||
ordinal = ordinal.slice(0, -4) + 'ninth';
|
||||
}
|
||||
else if (ordinal.match(/twelve$/)) {
|
||||
ordinal = ordinal.slice(0, -6) + 'twelfth';
|
||||
}
|
||||
else if (ordinal.match(/ty$/)) {
|
||||
ordinal = ordinal.slice(0, -2) + 'tieth';
|
||||
}
|
||||
else {
|
||||
ordinal = ordinal + 'th';
|
||||
}
|
||||
return ordinal;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const tens = num % 100;
|
||||
const numStr = num.toString();
|
||||
if (tens > 10 && tens < 20) {
|
||||
return numStr + 'th';
|
||||
}
|
||||
switch (num % 10) {
|
||||
case 1:
|
||||
return numStr + 'st';
|
||||
case 2:
|
||||
return numStr + 'nd';
|
||||
case 3:
|
||||
return numStr + 'rd';
|
||||
default:
|
||||
return numStr + 'th';
|
||||
}
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_es.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_es.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
103
node_modules/speech-rule-engine/js/l10n/numbers/numbers_es.js
generated
vendored
Normal file
103
node_modules/speech-rule-engine/js/l10n/numbers/numbers_es.js
generated
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function tensToWords_(num) {
|
||||
const n = num % 100;
|
||||
if (n < 30) {
|
||||
return exports.NUMBERS.ones[n];
|
||||
}
|
||||
const tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
const ones = exports.NUMBERS.ones[n % 10];
|
||||
return tens && ones ? tens + ' y ' + ones : tens || ones;
|
||||
}
|
||||
function hundredsToWords_(num) {
|
||||
const n = num % 1000;
|
||||
const hundred = Math.floor(n / 100);
|
||||
const hundreds = exports.NUMBERS.special.hundreds[hundred];
|
||||
const tens = tensToWords_(n % 100);
|
||||
if (hundred === 1) {
|
||||
if (!tens) {
|
||||
return hundreds;
|
||||
}
|
||||
return hundreds + 'to' + ' ' + tens;
|
||||
}
|
||||
return hundreds && tens ? hundreds + ' ' + tens : hundreds || tens;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
let large = exports.NUMBERS.large[pos];
|
||||
const huns = hundredsToWords_(hundreds);
|
||||
if (!pos) {
|
||||
str = huns;
|
||||
}
|
||||
else if (hundreds === 1) {
|
||||
large = large.match('/^mil( |$)/') ? large : 'un ' + large;
|
||||
str = large + (str ? ' ' + str : '');
|
||||
}
|
||||
else {
|
||||
large = large.replace(/\u00f3n$/, 'ones');
|
||||
str = hundredsToWords_(hundreds) + ' ' + large + (str ? ' ' + str : '');
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToOrdinal(num, _plural) {
|
||||
if (num > 1999) {
|
||||
return num.toString() + 'a';
|
||||
}
|
||||
if (num <= 12) {
|
||||
return exports.NUMBERS.special.onesOrdinals[num - 1];
|
||||
}
|
||||
const result = [];
|
||||
if (num >= 1000) {
|
||||
num = num - 1000;
|
||||
result.push('milésima');
|
||||
}
|
||||
if (!num) {
|
||||
return result.join(' ');
|
||||
}
|
||||
let pos = 0;
|
||||
pos = Math.floor(num / 100);
|
||||
if (pos > 0) {
|
||||
result.push(exports.NUMBERS.special.hundredsOrdinals[pos - 1]);
|
||||
num = num % 100;
|
||||
}
|
||||
if (num <= 12) {
|
||||
result.push(exports.NUMBERS.special.onesOrdinals[num - 1]);
|
||||
}
|
||||
else {
|
||||
pos = Math.floor(num / 10);
|
||||
if (pos > 0) {
|
||||
result.push(exports.NUMBERS.special.tensOrdinals[pos - 1]);
|
||||
num = num % 10;
|
||||
}
|
||||
if (num > 0) {
|
||||
result.push(exports.NUMBERS.special.onesOrdinals[num - 1]);
|
||||
}
|
||||
}
|
||||
return result.join(' ');
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
return num.toString() + (gender === 'f' ? 'a' : 'o');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_fr.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_fr.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
119
node_modules/speech-rule-engine/js/l10n/numbers/numbers_fr.js
generated
vendored
Normal file
119
node_modules/speech-rule-engine/js/l10n/numbers/numbers_fr.js
generated
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const engine_js_1 = require("../../common/engine.js");
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 100)]
|
||||
? exports.NUMBERS.ones[Math.floor(n / 100)] + '-cent'
|
||||
: '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? '-' : '';
|
||||
let ones = exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
const tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
if (tens.match(/-dix$/)) {
|
||||
ones = exports.NUMBERS.ones[(n % 10) + 10];
|
||||
str += tens.replace(/-dix$/, '') + '-' + ones;
|
||||
}
|
||||
else {
|
||||
str += tens + (n % 10 ? '-' + exports.NUMBERS.ones[n % 10] : '');
|
||||
}
|
||||
}
|
||||
}
|
||||
const match = str.match(/s-\w+$/);
|
||||
return match
|
||||
? str.replace(/s-\w+$/, match[0].slice(1))
|
||||
: str.replace(/-un$/, '-et-un');
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
if (exports.NUMBERS.special['tens-' + engine_js_1.Engine.getInstance().subiso]) {
|
||||
exports.NUMBERS.tens = exports.NUMBERS.special['tens-' + engine_js_1.Engine.getInstance().subiso];
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
let large = exports.NUMBERS.large[pos];
|
||||
const huns = hundredsToWords_(hundreds);
|
||||
if (large && large.match(/^mille /)) {
|
||||
const rest = large.replace(/^mille /, '');
|
||||
if (str.match(RegExp(rest))) {
|
||||
str = huns + (pos ? '-mille-' : '') + str;
|
||||
}
|
||||
else if (str.match(RegExp(rest.replace(/s$/, '')))) {
|
||||
str =
|
||||
huns +
|
||||
(pos ? '-mille-' : '') +
|
||||
str.replace(rest.replace(/s$/, ''), rest);
|
||||
}
|
||||
else {
|
||||
str = huns + (pos ? '-' + large + '-' : '') + str;
|
||||
}
|
||||
}
|
||||
else {
|
||||
large = hundreds === 1 && large ? large.replace(/s$/, '') : large;
|
||||
str = huns + (pos ? '-' + large + '-' : '') + str;
|
||||
}
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/-$/, '');
|
||||
}
|
||||
const SMALL_ORDINAL = {
|
||||
1: 'unième',
|
||||
2: 'demi',
|
||||
3: 'tiers',
|
||||
4: 'quart'
|
||||
};
|
||||
function numberToOrdinal(num, plural) {
|
||||
const ordinal = SMALL_ORDINAL[num] || wordOrdinal(num);
|
||||
return num === 3 ? ordinal : plural ? ordinal + 's' : ordinal;
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
if (num === 1) {
|
||||
return 'première';
|
||||
}
|
||||
let ordinal = numberToWords(num);
|
||||
if (ordinal.match(/^neuf$/)) {
|
||||
ordinal = ordinal.slice(0, -1) + 'v';
|
||||
}
|
||||
else if (ordinal.match(/cinq$/)) {
|
||||
ordinal = ordinal + 'u';
|
||||
}
|
||||
else if (ordinal.match(/trois$/)) {
|
||||
ordinal = ordinal + '';
|
||||
}
|
||||
else if (ordinal.match(/e$/) || ordinal.match(/s$/)) {
|
||||
ordinal = ordinal.slice(0, -1);
|
||||
}
|
||||
ordinal = ordinal + 'ième';
|
||||
return ordinal;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
return num === 1
|
||||
? num.toString() + (gender === 'm' ? 'er' : 're')
|
||||
: num.toString() + 'e';
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_hi.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_hi.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
91
node_modules/speech-rule-engine/js/l10n/numbers/numbers_hi.js
generated
vendored
Normal file
91
node_modules/speech-rule-engine/js/l10n/numbers/numbers_hi.js
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 100)]
|
||||
? exports.NUMBERS.ones[Math.floor(n / 100)] +
|
||||
exports.NUMBERS.numSep +
|
||||
exports.NUMBERS.special.hundred
|
||||
: '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
str += exports.NUMBERS.ones[n];
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 32)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
const hundreds = num % 1000;
|
||||
const hundredsWords = hundredsToWords_(hundreds);
|
||||
num = Math.floor(num / 1000);
|
||||
if (!num) {
|
||||
return hundredsWords;
|
||||
}
|
||||
while (num > 0) {
|
||||
const thousands = num % 100;
|
||||
if (thousands) {
|
||||
str =
|
||||
exports.NUMBERS.ones[thousands] +
|
||||
exports.NUMBERS.numSep +
|
||||
exports.NUMBERS.large[pos] +
|
||||
(str ? exports.NUMBERS.numSep + str : '');
|
||||
}
|
||||
num = Math.floor(num / 100);
|
||||
pos++;
|
||||
}
|
||||
return hundredsWords ? str + exports.NUMBERS.numSep + hundredsWords : str;
|
||||
}
|
||||
function numberToOrdinal(num, _plural) {
|
||||
if (num <= 10) {
|
||||
return exports.NUMBERS.special.smallDenominators[num];
|
||||
}
|
||||
return wordOrdinal(num) + ' अंश';
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
if (num <= 0) {
|
||||
return num.toString();
|
||||
}
|
||||
if (num < 10) {
|
||||
return gender === 'f'
|
||||
? exports.NUMBERS.special.ordinalsFeminine[num]
|
||||
: exports.NUMBERS.special.ordinalsMasculine[num];
|
||||
}
|
||||
const ordinal = numberToWords(num);
|
||||
return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
if (num > 0 && num < 10) {
|
||||
return gender === 'f'
|
||||
? exports.NUMBERS.special.simpleSmallOrdinalsFeminine[num]
|
||||
: exports.NUMBERS.special.simpleSmallOrdinalsMasculine[num];
|
||||
}
|
||||
const ordinal = num
|
||||
.toString()
|
||||
.split('')
|
||||
.map(function (x) {
|
||||
const num = parseInt(x, 10);
|
||||
return isNaN(num) ? '' : exports.NUMBERS.special.simpleNumbers[num];
|
||||
})
|
||||
.join('');
|
||||
return ordinal + (gender === 'f' ? 'वीं' : 'वाँ');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_it.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_it.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
86
node_modules/speech-rule-engine/js/l10n/numbers/numbers_it.js
generated
vendored
Normal file
86
node_modules/speech-rule-engine/js/l10n/numbers/numbers_it.js
generated
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const grammar_js_1 = require("../../rule_engine/grammar.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 100)]
|
||||
? exports.NUMBERS.ones[Math.floor(n / 100)] + exports.NUMBERS.numSep + 'cento'
|
||||
: '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
const ones = exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
let tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
const rest = n % 10;
|
||||
if (rest === 1 || rest === 8) {
|
||||
tens = tens.slice(0, -1);
|
||||
}
|
||||
str += tens;
|
||||
str += rest ? exports.NUMBERS.numSep + exports.NUMBERS.ones[n % 10] : '';
|
||||
}
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
if (num === 1 && grammar_js_1.Grammar.getInstance().getParameter('fraction')) {
|
||||
return 'un';
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
str =
|
||||
hundredsToWords_(num % 1000) +
|
||||
(pos ? '-' + exports.NUMBERS.large[pos] + '-' : '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/-$/, '');
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 2) {
|
||||
return plural ? 'mezzi' : 'mezzo';
|
||||
}
|
||||
const ordinal = wordOrdinal(num);
|
||||
if (!plural) {
|
||||
return ordinal;
|
||||
}
|
||||
const gender = ordinal.match(/o$/) ? 'i' : 'e';
|
||||
return ordinal.slice(0, -1) + gender;
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
const postfix = gender === 'm' ? 'o' : 'a';
|
||||
let ordinal = exports.NUMBERS.special.onesOrdinals[num];
|
||||
if (ordinal) {
|
||||
return ordinal.slice(0, -1) + postfix;
|
||||
}
|
||||
ordinal = numberToWords(num);
|
||||
return ordinal.slice(0, -1) + 'esim' + postfix;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const gender = grammar_js_1.Grammar.getInstance().getParameter('gender');
|
||||
return num.toString() + (gender === 'm' ? 'o' : 'a');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ko.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ko.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
69
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ko.js
generated
vendored
Normal file
69
node_modules/speech-rule-engine/js/l10n/numbers/numbers_ko.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function thousandsToWords_(num) {
|
||||
let n = num % 10000;
|
||||
let str = '';
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 1000)]
|
||||
? Math.floor(n / 1000) === 1
|
||||
? '천'
|
||||
: exports.NUMBERS.ones[Math.floor(n / 1000)] + '천'
|
||||
: '';
|
||||
n = n % 1000;
|
||||
if (n) {
|
||||
str += exports.NUMBERS.ones[Math.floor(n / 100)]
|
||||
? Math.floor(n / 100) === 1
|
||||
? '백'
|
||||
: exports.NUMBERS.ones[Math.floor(n / 100)] + '백'
|
||||
: '';
|
||||
n = n % 100;
|
||||
str +=
|
||||
exports.NUMBERS.tens[Math.floor(n / 10)] + (n % 10 ? exports.NUMBERS.ones[n % 10] : '');
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num) {
|
||||
if (num === 0)
|
||||
return exports.NUMBERS.zero;
|
||||
if (num >= Math.pow(10, 36))
|
||||
return num.toString();
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const thousands = num % 10000;
|
||||
if (thousands) {
|
||||
str =
|
||||
thousandsToWords_(num % 10000) +
|
||||
(pos ? exports.NUMBERS.large[pos] + exports.NUMBERS.numSep : '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 10000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/ $/, '');
|
||||
}
|
||||
function numberToOrdinal(num, _plural) {
|
||||
if (num === 1)
|
||||
return '첫번째';
|
||||
return wordOrdinal(num) + '번째';
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
const ordinal = numberToWords(num);
|
||||
num %= 100;
|
||||
const label = numberToWords(num);
|
||||
if (!label || !num)
|
||||
return ordinal;
|
||||
const tens = num === 20 ? '스무' : exports.NUMBERS.tens[10 + Math.floor(num / 10)];
|
||||
const ones = exports.NUMBERS.ones[10 + Math.floor(num % 10)];
|
||||
return ordinal.slice(0, -label.length) + tens + ones;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
return numberToOrdinal(num, false);
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nemeth.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nemeth.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
16
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nemeth.js
generated
vendored
Normal file
16
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nemeth.js
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function numberToWords(num) {
|
||||
const digits = num.toString().split('');
|
||||
return digits
|
||||
.map(function (digit) {
|
||||
return exports.NUMBERS.ones[parseInt(digit, 10)];
|
||||
})
|
||||
.join('');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToWords
|
||||
});
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nn.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nn.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
163
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nn.js
generated
vendored
Normal file
163
node_modules/speech-rule-engine/js/l10n/numbers/numbers_nn.js
generated
vendored
Normal file
@@ -0,0 +1,163 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const engine_js_1 = require("../../common/engine.js");
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWordsRo_(num, ordinal = false) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
const count = Math.floor(n / 100);
|
||||
const ones = exports.NUMBERS.ones[count];
|
||||
str += ones ? (count === 1 ? '' : ones) + 'hundre' : '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? 'og' : '';
|
||||
if (ordinal) {
|
||||
const ord = exports.NUMBERS.special.smallOrdinals[n];
|
||||
if (ord) {
|
||||
return str + ord;
|
||||
}
|
||||
if (n % 10) {
|
||||
return (str +
|
||||
exports.NUMBERS.tens[Math.floor(n / 10)] +
|
||||
exports.NUMBERS.special.smallOrdinals[n % 10]);
|
||||
}
|
||||
}
|
||||
str +=
|
||||
exports.NUMBERS.ones[n] ||
|
||||
exports.NUMBERS.tens[Math.floor(n / 10)] + (n % 10 ? exports.NUMBERS.ones[n % 10] : '');
|
||||
}
|
||||
return ordinal ? replaceOrdinal(str) : str;
|
||||
}
|
||||
function numberToWordsRo(num, ordinal = false) {
|
||||
if (num === 0) {
|
||||
return ordinal ? exports.NUMBERS.special.smallOrdinals[0] : exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const hund = hundredsToWordsRo_(num % 1000, pos ? false : ordinal);
|
||||
if (!pos && ordinal) {
|
||||
ordinal = !ordinal;
|
||||
}
|
||||
str =
|
||||
hund +
|
||||
(pos
|
||||
? ' ' +
|
||||
(exports.NUMBERS.large[pos] + (pos > 1 && hundreds > 1 ? 'er' : '')) +
|
||||
(str ? ' ' : '')
|
||||
: '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return ordinal ? str + (str.match(/tusen$/) ? 'de' : 'te') : str;
|
||||
}
|
||||
function numberToOrdinal(num, _plural) {
|
||||
return wordOrdinal(num);
|
||||
}
|
||||
function replaceOrdinal(str) {
|
||||
const letOne = exports.NUMBERS.special.endOrdinal[0];
|
||||
if (letOne === 'a' && str.match(/en$/)) {
|
||||
return str.slice(0, -2) + exports.NUMBERS.special.endOrdinal;
|
||||
}
|
||||
if (str.match(/(d|n)$/) || str.match(/hundre$/)) {
|
||||
return str + 'de';
|
||||
}
|
||||
if (str.match(/i$/)) {
|
||||
return str + exports.NUMBERS.special.endOrdinal;
|
||||
}
|
||||
if (letOne === 'a' && str.match(/e$/)) {
|
||||
return str.slice(0, -1) + exports.NUMBERS.special.endOrdinal;
|
||||
}
|
||||
if (str.match(/e$/)) {
|
||||
return str + 'nde';
|
||||
}
|
||||
return str + 'nde';
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
const ordinal = numberToWords(num, true);
|
||||
return ordinal;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
return num.toString() + '.';
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
function onePrefix_(num, thd = false) {
|
||||
const numOne = exports.NUMBERS.ones[1];
|
||||
return num === numOne ? (num === 'ein' ? 'eitt ' : thd ? 'et' : 'ett') : num;
|
||||
}
|
||||
function hundredsToWordsGe_(num, ordinal = false) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
let ones = exports.NUMBERS.ones[Math.floor(n / 100)];
|
||||
str += ones ? onePrefix_(ones) + 'hundre' : '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? 'og' : '';
|
||||
if (ordinal) {
|
||||
const ord = exports.NUMBERS.special.smallOrdinals[n];
|
||||
if (ord) {
|
||||
return (str += ord);
|
||||
}
|
||||
}
|
||||
ones = exports.NUMBERS.ones[n];
|
||||
if (ones) {
|
||||
str += ones;
|
||||
}
|
||||
else {
|
||||
const tens = exports.NUMBERS.tens[Math.floor(n / 10)];
|
||||
ones = exports.NUMBERS.ones[n % 10];
|
||||
str += ones ? ones + 'og' + tens : tens;
|
||||
}
|
||||
}
|
||||
return ordinal ? replaceOrdinal(str) : str;
|
||||
}
|
||||
function numberToWordsGe(num, ordinal = false) {
|
||||
if (num === 0) {
|
||||
return ordinal ? exports.NUMBERS.special.smallOrdinals[0] : exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const hund = hundredsToWordsGe_(num % 1000, pos ? false : ordinal);
|
||||
if (!pos && ordinal) {
|
||||
ordinal = !ordinal;
|
||||
}
|
||||
str =
|
||||
(pos === 1 ? onePrefix_(hund, true) : hund) +
|
||||
(pos > 1 ? exports.NUMBERS.numSep : '') +
|
||||
(pos
|
||||
?
|
||||
exports.NUMBERS.large[pos] + (pos > 1 && hundreds > 1 ? 'er' : '')
|
||||
: '') +
|
||||
(pos > 1 && str ? exports.NUMBERS.numSep : '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return ordinal ? str + (str.match(/tusen$/) ? 'de' : 'te') : str;
|
||||
}
|
||||
function numberToWords(num, ordinal = false) {
|
||||
const word = engine_js_1.Engine.getInstance().subiso === 'alt'
|
||||
? numberToWordsGe(num, ordinal)
|
||||
: numberToWordsRo(num, ordinal);
|
||||
return word;
|
||||
}
|
||||
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_sv.d.ts
generated
vendored
Normal file
2
node_modules/speech-rule-engine/js/l10n/numbers/numbers_sv.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import { Numbers } from '../messages.js';
|
||||
export declare const NUMBERS: Numbers;
|
||||
124
node_modules/speech-rule-engine/js/l10n/numbers/numbers_sv.js
generated
vendored
Normal file
124
node_modules/speech-rule-engine/js/l10n/numbers/numbers_sv.js
generated
vendored
Normal file
@@ -0,0 +1,124 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.NUMBERS = void 0;
|
||||
const messages_js_1 = require("../messages.js");
|
||||
function hundredsToWords_(num) {
|
||||
let n = num % 1000;
|
||||
let str = '';
|
||||
const hundreds = Math.floor(n / 100);
|
||||
str += exports.NUMBERS.ones[hundreds]
|
||||
? (hundreds === 1 ? '' : exports.NUMBERS.ones[hundreds] + exports.NUMBERS.numSep) + 'hundra'
|
||||
: '';
|
||||
n = n % 100;
|
||||
if (n) {
|
||||
str += str ? exports.NUMBERS.numSep : '';
|
||||
str +=
|
||||
exports.NUMBERS.ones[n] ||
|
||||
exports.NUMBERS.tens[Math.floor(n / 10)] +
|
||||
(n % 10 ? exports.NUMBERS.numSep + exports.NUMBERS.ones[n % 10] : '');
|
||||
}
|
||||
return str;
|
||||
}
|
||||
function numberToWords(num, ordinal = false) {
|
||||
if (num === 0) {
|
||||
return exports.NUMBERS.zero;
|
||||
}
|
||||
if (num >= Math.pow(10, 36)) {
|
||||
return num.toString();
|
||||
}
|
||||
let pos = 0;
|
||||
let str = '';
|
||||
while (num > 0) {
|
||||
const hundreds = num % 1000;
|
||||
if (hundreds) {
|
||||
const large = exports.NUMBERS.large[pos];
|
||||
const plural = hundreds > 1 && pos > 1 && !ordinal ? 'er' : '';
|
||||
str =
|
||||
(pos === 1 && hundreds === 1
|
||||
? ''
|
||||
: (pos > 1 && hundreds === 1 ? 'en' : hundredsToWords_(num % 1000)) +
|
||||
(pos > 1 ? ' ' : '')) +
|
||||
(pos ? large + plural + (pos > 1 ? ' ' : '') : '') +
|
||||
str;
|
||||
}
|
||||
num = Math.floor(num / 1000);
|
||||
pos++;
|
||||
}
|
||||
return str.replace(/ $/, '');
|
||||
}
|
||||
function numberToOrdinal(num, plural) {
|
||||
if (num === 1) {
|
||||
return plural ? 'hel' : 'hel';
|
||||
}
|
||||
if (num === 2) {
|
||||
return plural ? 'halva' : 'halv';
|
||||
}
|
||||
let ordinal = wordOrdinal(num);
|
||||
ordinal = ordinal.match(/de$/) ? ordinal.replace(/de$/, '') : ordinal;
|
||||
return ordinal + (plural ? 'delar' : 'del');
|
||||
}
|
||||
function wordOrdinal(num) {
|
||||
let ordinal = numberToWords(num, true);
|
||||
if (ordinal.match(/^noll$/)) {
|
||||
ordinal = 'nollte';
|
||||
}
|
||||
else if (ordinal.match(/ett$/)) {
|
||||
ordinal = ordinal.replace(/ett$/, 'första');
|
||||
}
|
||||
else if (ordinal.match(/två$/)) {
|
||||
ordinal = ordinal.replace(/två$/, 'andra');
|
||||
}
|
||||
else if (ordinal.match(/tre$/)) {
|
||||
ordinal = ordinal.replace(/tre$/, 'tredje');
|
||||
}
|
||||
else if (ordinal.match(/fyra$/)) {
|
||||
ordinal = ordinal.replace(/fyra$/, 'fjärde');
|
||||
}
|
||||
else if (ordinal.match(/fem$/)) {
|
||||
ordinal = ordinal.replace(/fem$/, 'femte');
|
||||
}
|
||||
else if (ordinal.match(/sex$/)) {
|
||||
ordinal = ordinal.replace(/sex$/, 'sjätte');
|
||||
}
|
||||
else if (ordinal.match(/sju$/)) {
|
||||
ordinal = ordinal.replace(/sju$/, 'sjunde');
|
||||
}
|
||||
else if (ordinal.match(/åtta$/)) {
|
||||
ordinal = ordinal.replace(/åtta$/, 'åttonde');
|
||||
}
|
||||
else if (ordinal.match(/nio$/)) {
|
||||
ordinal = ordinal.replace(/nio$/, 'nionde');
|
||||
}
|
||||
else if (ordinal.match(/tio$/)) {
|
||||
ordinal = ordinal.replace(/tio$/, 'tionde');
|
||||
}
|
||||
else if (ordinal.match(/elva$/)) {
|
||||
ordinal = ordinal.replace(/elva$/, 'elfte');
|
||||
}
|
||||
else if (ordinal.match(/tolv$/)) {
|
||||
ordinal = ordinal.replace(/tolv$/, 'tolfte');
|
||||
}
|
||||
else if (ordinal.match(/tusen$/)) {
|
||||
ordinal = ordinal.replace(/tusen$/, 'tusonde');
|
||||
}
|
||||
else if (ordinal.match(/jard$/) || ordinal.match(/jon$/)) {
|
||||
ordinal = ordinal + 'te';
|
||||
}
|
||||
else {
|
||||
ordinal = ordinal + 'de';
|
||||
}
|
||||
return ordinal;
|
||||
}
|
||||
function numericOrdinal(num) {
|
||||
const str = num.toString();
|
||||
if (str.match(/11$|12$/)) {
|
||||
return str + ':e';
|
||||
}
|
||||
return str + (str.match(/1$|2$/) ? ':a' : ':e');
|
||||
}
|
||||
exports.NUMBERS = (0, messages_js_1.NUMBERS)({
|
||||
wordOrdinal: wordOrdinal,
|
||||
numericOrdinal: numericOrdinal,
|
||||
numberToWords: numberToWords,
|
||||
numberToOrdinal: numberToOrdinal
|
||||
});
|
||||
17
node_modules/speech-rule-engine/js/l10n/transformers.d.ts
generated
vendored
Normal file
17
node_modules/speech-rule-engine/js/l10n/transformers.d.ts
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
export type Transformer = (p1: string | number) => string;
|
||||
export type Combiner = (p1: string, p2: string, p3: string) => string;
|
||||
export type SiCombiner = (p1: string, p2: string) => string;
|
||||
export type GrammarCase = (p1: number, p2: boolean) => string;
|
||||
export declare function pluralCase(num: number, _plural: boolean): string;
|
||||
export declare function identityTransformer(input: string | number): string;
|
||||
export declare function siCombiner(prefix: string, unit: string): string;
|
||||
export declare const Combiners: Record<string, Combiner>;
|
||||
interface Convertible {
|
||||
convertible: boolean;
|
||||
content?: string;
|
||||
denominator?: number;
|
||||
enumerator?: number;
|
||||
}
|
||||
export declare function convertVulgarFraction(node: Element, over?: string): Convertible;
|
||||
export declare function vulgarFractionSmall(node: Element, enumer: number, denom: number): boolean;
|
||||
export {};
|
||||
77
node_modules/speech-rule-engine/js/l10n/transformers.js
generated
vendored
Normal file
77
node_modules/speech-rule-engine/js/l10n/transformers.js
generated
vendored
Normal file
@@ -0,0 +1,77 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.Combiners = void 0;
|
||||
exports.pluralCase = pluralCase;
|
||||
exports.identityTransformer = identityTransformer;
|
||||
exports.siCombiner = siCombiner;
|
||||
exports.convertVulgarFraction = convertVulgarFraction;
|
||||
exports.vulgarFractionSmall = vulgarFractionSmall;
|
||||
const semantic_meaning_js_1 = require("../semantic_tree/semantic_meaning.js");
|
||||
function pluralCase(num, _plural) {
|
||||
return num.toString();
|
||||
}
|
||||
function identityTransformer(input) {
|
||||
return input.toString();
|
||||
}
|
||||
function siCombiner(prefix, unit) {
|
||||
return prefix + unit.toLowerCase();
|
||||
}
|
||||
exports.Combiners = {};
|
||||
exports.Combiners.identityCombiner = function (a, b, c) {
|
||||
return a + b + c;
|
||||
};
|
||||
exports.Combiners.prefixCombiner = function (letter, font, cap) {
|
||||
letter = cap ? cap + ' ' + letter : letter;
|
||||
return font ? font + ' ' + letter : letter;
|
||||
};
|
||||
exports.Combiners.postfixCombiner = function (letter, font, cap) {
|
||||
letter = cap ? cap + ' ' + letter : letter;
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
exports.Combiners.romanceCombiner = function (letter, font, cap) {
|
||||
letter = cap ? letter + ' ' + cap : letter;
|
||||
return font ? letter + ' ' + font : letter;
|
||||
};
|
||||
function convertVulgarFraction(node, over = '') {
|
||||
if (!node.childNodes ||
|
||||
!node.childNodes[0] ||
|
||||
!node.childNodes[0].childNodes ||
|
||||
node.childNodes[0].childNodes.length < 2 ||
|
||||
node.childNodes[0].childNodes[0].tagName !==
|
||||
semantic_meaning_js_1.SemanticType.NUMBER ||
|
||||
node.childNodes[0].childNodes[0].getAttribute('role') !==
|
||||
semantic_meaning_js_1.SemanticRole.INTEGER ||
|
||||
node.childNodes[0].childNodes[1].tagName !==
|
||||
semantic_meaning_js_1.SemanticType.NUMBER ||
|
||||
node.childNodes[0].childNodes[1].getAttribute('role') !==
|
||||
semantic_meaning_js_1.SemanticRole.INTEGER) {
|
||||
return { convertible: false, content: node.textContent };
|
||||
}
|
||||
const denStr = node.childNodes[0].childNodes[1].textContent;
|
||||
const enumStr = node.childNodes[0].childNodes[0].textContent;
|
||||
const denominator = Number(denStr);
|
||||
const enumerator = Number(enumStr);
|
||||
if (isNaN(denominator) || isNaN(enumerator)) {
|
||||
return {
|
||||
convertible: false,
|
||||
content: `${enumStr} ${over} ${denStr}`
|
||||
};
|
||||
}
|
||||
return {
|
||||
convertible: true,
|
||||
enumerator: enumerator,
|
||||
denominator: denominator
|
||||
};
|
||||
}
|
||||
function vulgarFractionSmall(node, enumer, denom) {
|
||||
const conversion = convertVulgarFraction(node);
|
||||
if (conversion.convertible) {
|
||||
const enumerator = conversion.enumerator;
|
||||
const denominator = conversion.denominator;
|
||||
return (enumerator > 0 &&
|
||||
enumerator < enumer &&
|
||||
denominator > 0 &&
|
||||
denominator < denom);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user