marathi-transliterate 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/dictionary.js +57 -1
- package/src/dom.js +1 -1
- package/src/index.js +20 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "marathi-transliterate",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"description": "Zero-dependency, offline-first Marathi / Devanagari phonetic transliteration library. Converts English typing to Marathi (e.g. sakhar -> साखर) seamlessly in plain JS, Node.js, and frontend frameworks.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
package/src/dictionary.js
CHANGED
|
@@ -1303,6 +1303,62 @@ export const MARATHI_DICTIONARY = {
|
|
|
1303
1303
|
"khanyachadink": "खाण्याचा डिंक",
|
|
1304
1304
|
"bavchi": "बावची",
|
|
1305
1305
|
"nagarmotha": "नागरमोथा",
|
|
1306
|
-
"pippali": "पिंपळी"
|
|
1306
|
+
"pippali": "पिंपळी",
|
|
1307
|
+
|
|
1308
|
+
// Kranti (Famous Maharashtrian edible oil brand & name)
|
|
1309
|
+
"kranti": "क्रांती",
|
|
1310
|
+
"cranti": "क्रांती",
|
|
1311
|
+
"kraanti": "क्रांती",
|
|
1312
|
+
"krantee": "क्रांती",
|
|
1313
|
+
"krantioil": "क्रांती तेल",
|
|
1314
|
+
"krantitel": "क्रांती तेल",
|
|
1315
|
+
"krantisunfloweroil": "क्रांती सूर्यफूल तेल",
|
|
1316
|
+
"krantisoyabeanoil": "क्रांती सोयाबीन तेल",
|
|
1317
|
+
"krantigroundnutoil": "क्रांती शेंगदाणा तेल",
|
|
1318
|
+
|
|
1319
|
+
// Electricals, Lighting & General Store terms (Watt, Bulb, LED, etc.)
|
|
1320
|
+
"watt": "वॉट",
|
|
1321
|
+
"watts": "वॉट",
|
|
1322
|
+
"wat": "वाट",
|
|
1323
|
+
"waat": "वाट",
|
|
1324
|
+
"vat": "वात",
|
|
1325
|
+
"bulb": "बल्ब",
|
|
1326
|
+
"bulbs": "बल्ब",
|
|
1327
|
+
"balb": "बल्ब",
|
|
1328
|
+
"led": "एलईडी",
|
|
1329
|
+
"cfl": "सीएफएल",
|
|
1330
|
+
"switch": "स्विच",
|
|
1331
|
+
"switches": "स्विचेस",
|
|
1332
|
+
"socket": "सॉकेट",
|
|
1333
|
+
"wire": "वायर",
|
|
1334
|
+
"wires": "वायर",
|
|
1335
|
+
"plug": "प्लग",
|
|
1336
|
+
"holder": "होल्डर",
|
|
1337
|
+
"tester": "टेस्टर",
|
|
1338
|
+
"tubelight": "ट्युबलाईट",
|
|
1339
|
+
"tube": "ट्यूब",
|
|
1340
|
+
"cell": "सेल",
|
|
1341
|
+
"adaptor": "अॅडॉप्टर",
|
|
1342
|
+
"adapter": "अॅडॉप्टर",
|
|
1343
|
+
"cable": "केबल",
|
|
1344
|
+
"fuse": "फ्युज",
|
|
1345
|
+
"mcb": "एमसीबी",
|
|
1346
|
+
"choke": "चोक",
|
|
1347
|
+
"starter": "स्टार्टर",
|
|
1348
|
+
"tape": "टेप",
|
|
1349
|
+
"insulationtape": "इन्स्युलेशन टेप",
|
|
1350
|
+
"regulator": "रेग्युलेटर",
|
|
1351
|
+
"board": "बोर्ड",
|
|
1352
|
+
"extensionboard": "एक्स्टेंशन बोर्ड",
|
|
1353
|
+
|
|
1354
|
+
// Common Marathi vocabulary & items
|
|
1355
|
+
"shanti": "शांती",
|
|
1356
|
+
"shaanti": "शांती",
|
|
1357
|
+
"shantee": "शांती",
|
|
1358
|
+
"kanti": "कांती",
|
|
1359
|
+
"vati": "वाटी",
|
|
1360
|
+
"vatya": "वाट्या",
|
|
1361
|
+
"watti": "वाटी",
|
|
1362
|
+
"wattya": "वाट्या"
|
|
1307
1363
|
|
|
1308
1364
|
};
|
package/src/dom.js
CHANGED
|
@@ -218,7 +218,7 @@ export function attachDevanagari(target, options = {}) {
|
|
|
218
218
|
selectCandidate(selectedIndex, e.key === 'Enter' ? '' : ' ');
|
|
219
219
|
return;
|
|
220
220
|
}
|
|
221
|
-
if (e.key === ' ') {
|
|
221
|
+
if (e.key === ' ' || e.key === 'Spacebar' || e.code === 'Space') {
|
|
222
222
|
e.preventDefault();
|
|
223
223
|
selectCandidate(selectedIndex, ' ');
|
|
224
224
|
return;
|
package/src/index.js
CHANGED
|
@@ -223,11 +223,13 @@ export function getSuggestions(word, options = {}) {
|
|
|
223
223
|
|
|
224
224
|
// 4l. Chandra "ॉ" (Candra O, \u0949) and "ो" (O, \u094B)
|
|
225
225
|
// Essential for English loanwords in grocery & everyday shop items
|
|
226
|
-
// e.g. polish -> पॉलिश, coil -> कॉईल, coffee -> कॉफी, doctor -> डॉक्टर, sauce -> सॉस, box -> बॉक्स, ball -> बॉल, stock -> स्टॉक
|
|
226
|
+
// e.g. watt -> वॉट / वॅट / वाट, polish -> पॉलिश, coil -> कॉईल, coffee -> कॉफी, doctor -> डॉक्टर, sauce -> सॉस, box -> बॉक्स, ball -> बॉल, stock -> स्टॉक
|
|
227
227
|
if (s.includes("ो")) {
|
|
228
228
|
add(s.replace(/ो/g, "ॉ"));
|
|
229
229
|
} else if (s.includes("ॉ")) {
|
|
230
230
|
add(s.replace(/ॉ/g, "ो"));
|
|
231
|
+
add(s.replace(/ॉ/g, "ॅ"));
|
|
232
|
+
add(s.replace(/ॉ/g, "ा"));
|
|
231
233
|
}
|
|
232
234
|
if (s.startsWith("ओ")) {
|
|
233
235
|
add("ऑ" + s.slice(1));
|
|
@@ -241,6 +243,7 @@ export function getSuggestions(word, options = {}) {
|
|
|
241
243
|
add(s.replace(/े/g, "ॅ"));
|
|
242
244
|
} else if (s.includes("ॅ")) {
|
|
243
245
|
add(s.replace(/ॅ/g, "े"));
|
|
246
|
+
add(s.replace(/ॅ/g, "ॉ"));
|
|
244
247
|
}
|
|
245
248
|
|
|
246
249
|
// 4n. Smart Anusvara on "su" prefixes and "sunth"
|
|
@@ -254,6 +257,22 @@ export function getSuggestions(word, options = {}) {
|
|
|
254
257
|
if (clean.startsWith("rajh")) {
|
|
255
258
|
add("राजहंस");
|
|
256
259
|
}
|
|
260
|
+
|
|
261
|
+
// 4p. Smart Kana + Anusvara (ां) expansion (मराठी शुद्धलेखन)
|
|
262
|
+
// e.g. "kranti" -> "क्रांती" / "क्रांति", "shanti" -> "शांती", "kanti" -> "कांती", "kanda" -> "कांदा", "gandhi" -> "गांधी"
|
|
263
|
+
if (s.includes("ं")) {
|
|
264
|
+
const withKanaAnusvar = s.replace(/([^ािीुूेैोौॉॅ्\s])ं/g, "$1ां");
|
|
265
|
+
if (withKanaAnusvar !== s) {
|
|
266
|
+
add(withKanaAnusvar);
|
|
267
|
+
if (withKanaAnusvar.endsWith("ि")) add(withKanaAnusvar.slice(0, -1) + "ी");
|
|
268
|
+
if (withKanaAnusvar.endsWith("ी")) add(withKanaAnusvar.slice(0, -1) + "ि");
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// Background fetch to enrich cache if online (non-blocking)
|
|
274
|
+
if (typeof fetch !== "undefined" && !getCachedWord(clean)) {
|
|
275
|
+
fetchOnlineMarathi(clean).catch(() => {});
|
|
257
276
|
}
|
|
258
277
|
|
|
259
278
|
// 5. Prefix matches from dictionary (if clean.length >= 2)
|