From 261946b599387a3a235a2d3041fb9df85db448d7 Mon Sep 17 00:00:00 2001 From: vvasuki Date: Mon, 12 Feb 2024 14:30:39 +0530 Subject: [PATCH] Wordwise transliteration --- package-lock.json | 20 ++++++++++++-------- package.json | 2 +- src/sanscript.js | 18 ++++++++++++++++++ test/tests.js | 4 ++++ 4 files changed, 35 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index f3a80ff..68ec070 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@indic-transliteration/sanscript", - "version": "1.2.8", + "version": "1.3.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@indic-transliteration/sanscript", - "version": "1.2.8", + "version": "1.3.1", "license": "MIT", "dependencies": { "@indic-transliteration/common_maps": "^1.0.2", @@ -2034,9 +2034,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001462", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", - "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true, "funding": [ { @@ -2046,6 +2046,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -5163,9 +5167,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001462", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz", - "integrity": "sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==", + "version": "1.0.30001587", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001587.tgz", + "integrity": "sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==", "dev": true }, "chalk": { diff --git a/package.json b/package.json index 0d3f515..657859e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@indic-transliteration/sanscript", - "version": "1.3.0", + "version": "1.3.1", "description": "Sanscript is a transliteration library for Indian languages. It supports the most popular Indian scripts and several different romanization schemes. Although Sanscript focuses on Sanskrit transliteration, it has partial support for other languages and is easy to extend.", "main": "sanscript.js", "types": "./types/sanscript.d.ts", diff --git a/src/sanscript.js b/src/sanscript.js index cdf0190..a790e3d 100644 --- a/src/sanscript.js +++ b/src/sanscript.js @@ -526,6 +526,24 @@ function exportSanscriptSingleton (global, schemes, devanagariVowelToMarks) { return result; }; + /** + * A function to transliterate each word, for the benefit of script learners. + * + * @param data + * @param from + * @param to + * @param options + */ + Sanscript.transliterateWordwise = function (data, from, to, options) { + options = options || {}; + const words = data.split(/\s+/); + const word_tuples = words.map(function (word) { + const result = Sanscript.t(word, from, to, options); + return [word, result]; + }); + return word_tuples; + }; + // Now that Sanscript is fully defined, we now safely export it for use elsewhere. // The below block was copied from https://www.npmjs.com/package/sanscript . // define seems to be a requirejs thing https://requirejs.org/docs/whyamd.html#amd . diff --git a/test/tests.js b/test/tests.js index 91c7cd7..453e0bb 100644 --- a/test/tests.js +++ b/test/tests.js @@ -640,3 +640,7 @@ QUnit.test("Non-Sanskrit letters", function () { // const dev_iso = transHelper("devanagari", "iso"); // dev_iso("फ़ोन सड़क ज़्यादा", "fōna saṛaka zyaada"); }); + +QUnit.test("Transliterate wordwise", function () { + QUnit.assert.equal(Sanscript.transliterateWordwise("रामो दाशरथिर् यदि", "devanagari", "iso").toString(), [["रामो", "rāmō"], ["दाशरथिर्", "dāśarathir"], ["यदि", "yadi"]].toString(), "wordwise"); +});