1
0

add initial marp implementation with sample content and build configuration

This commit is contained in:
2025-09-13 18:13:22 +02:00
parent dcacc9b409
commit e5f219507f
10319 changed files with 1402023 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function af(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function ca(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function da(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function de(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function en(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function es(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function euro(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function fr(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function hi(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function it(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function ko(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function nb(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function nemeth(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function nn(): Locale;

View 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;
}

View File

@@ -0,0 +1,2 @@
import { Locale } from '../locale.js';
export declare function sv(): Locale;

View 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;
}