Skip to content

Commit

Permalink
Remove pronunciation rules as they are not used in Hindi Gutkas
Browse files Browse the repository at this point in the history
Add rule to move Tippi and Bindi after Bihari
Update tests
  • Loading branch information
sarabveer committed Aug 24, 2018
1 parent 3f850b1 commit 9b2db53
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 42 deletions.
32 changes: 4 additions & 28 deletions lib/toHindi.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@ const devanagariMappings = {
: 'औ',
ੜ੍ਹ: 'ढ़',
'੍': '्',
'ੰਨ': 'न्न',
'ੰਬ': 'म्ब',
'ੰ': 'ं',
'ਿਹ': 'ेह',
'ਿ': 'ि',
'ੀ': 'ी',
'ੁ': 'ु',
Expand All @@ -27,6 +24,7 @@ const devanagariMappings = {
'ੌ': 'ौ',
'ਾ': 'ा',
'ੵ': '्य',
'ੑ': '',
'ਃ': 'ः',
'ੱਖ': 'क्ख',
'ੱਛ': 'च्छ',
Expand Down Expand Up @@ -97,36 +95,14 @@ const mappings = Object
.map( ( [ exp, sub ] ) => [ new RegExp( escapeStringRegexp( exp ), 'g' ), sub ] )

// Replacement rules for initial input
const preReplacements = [
[ /(\S[^ਹ])([ਿੁ])(\s|$)/ug, '$1$3' ], // Remove trailing ੁ and ਿ except when on ਹ or on a standalone akhar
[ //ug, '' ], // Doesn't exist in Hindi
[ /ਅ(ਰ)(\s|$)/ug, 'य$1$2' ], // If last 2 chars are 'ਅਰ', then replace ਅ with य
[ /ਆ(ਂ)(\s|$)/ug, 'यਾ$1$2' ], // If last char is 'ਆਂ', then replace ਅ with य
[ /ਅ(\s|$)/ug, 'य$1' ], // If last char is 'ਅ', then replace ਅ with य
[ /ਈ(\s|$)/ug, 'यी$1' ], // If last char is 'ਈ', then replace ਈ with यी
[ /ਓ(.)(\s|$)/ug, 'यो$1$2' ], // If 2nd to last char is 'ਓ', then replace ਓ with यो
[ /ਓ(.)(ਾ|(ਾਂ)|ੀ|ੋ|ੌ|ੇ|ੈ|(੍ਰ)|(੍ਹ)|ੵ|(੍ਵ)|(੍ਚ)|(੍ਤ)|(੍ਨ)|(੍ਟ)|ੁ|ੂ)(\s|$)/ug, 'यो$1$2$3' ], // Ditto, but with vowels
[ /ਓ(\s|$)/ug, 'यो$1' ], // If last char is 'ਓ', then replace ਓ with यो
[ /ਣ(\s|$)/ug, 'न$1' ], // If last char is 'ਣ', then replace ਣ with न
]

// Replacement rules after conversion
const postReplacements = [
[ /िउ/ug, '्यु' ],
[ /िऊ/ug, '्यू' ],
[ /िओ/ug, '्यो' ],
[ /ीआ/ug, 'िया' ],
[ /ीअ/ug, 'िय' ],
[ /इण/ug, 'यण' ],
[ /ीयो/ug, '्यो' ],
[ /िआ/ug, '्या' ],
const replacements = [
[ /(ੰ|ਂ)(ੀ)/ug, '$2$1' ], // Move Tippi and Bindi after Bihari
]

// Precompute the replacements and mappings
const finalReplacements = [
...preReplacements,
...replacements,
...mappings,
...postReplacements,
]

/**
Expand Down
28 changes: 14 additions & 14 deletions test/toHindi.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,22 @@ const { toHindi } = require( '../index' )
const words = [
[ 'ਖੋਜ', 'खोज' ],
[ 'ਹਿਰ', 'हिर' ],
[ 'ਮਿਲੵੋਿ', 'मिल्यो' ],
[ 'ਕੁਲ ਜਨ ਮਧੇ ਮਿਲੵੋਿ ਸਾਰਗ ਪਾਨ ਰੇ ॥', 'कुल जन मधे मिल्यो सारग पान रे ॥' ],
[ 'ਤੂ ਪ੍ਰਭ ਦਾਤਾ ਦਾਨਿ ਮਤਿ ਪੂਰਾ ਹਮ ਥਾਰੇ ਭੇਖਾਰੀ ਜੀਉ ॥', 'तू प्रभ दाता दान मत पूरा हम थारे भेखारी जीउ ॥' ],
[ 'ਸੋ ਬ੍ਰਹਮੁ ਅਜੋਨੀ ਹੈ ਭੀ ਹੋਨੀ ਘਟ ਭੀਤਰਿ ਦੇਖੁ ਮੁਰਾਰੀ ਜੀਉ ॥੨॥', 'सो ब्रहम अजोनी है भी होनी घट भीतर देख मुरारी जीउ ॥२॥' ],
[ 'ਮਿਲੵੋਿ', 'मिल्योि' ],
[ 'ਕੁਲ ਜਨ ਮਧੇ ਮਿਲੵੋਿ ਸਾਰਗ ਪਾਨ ਰੇ ॥', 'कुल जन मधे मिल्योि सारग पान रे ॥' ],
[ 'ਤੂ ਪ੍ਰਭ ਦਾਤਾ ਦਾਨਿ ਮਤਿ ਪੂਰਾ ਹਮ ਥਾਰੇ ਭੇਖਾਰੀ ਜੀਉ ॥', 'तू प्रभ दाता दानि मति पूरा हम थारे भेखारी जीउ ॥' ],
[ 'ਸੋ ਬ੍ਰਹਮੁ ਅਜੋਨੀ ਹੈ ਭੀ ਹੋਨੀ ਘਟ ਭੀਤਰਿ ਦੇਖੁ ਮੁਰਾਰੀ ਜੀਉ ॥੨॥', 'सो ब्रहमु अजोनी है भी होनी घट भीतरि देखु मुरारी जीउ ॥२॥' ],
[ 'ਜ਼ਨੇ ਪੇਚ ਦਸਤਾਰ ਰਾ ਤਾਬਦਾਦ ॥', 'ज़ने पेच दसतार रा ताबदाद ॥' ],
[ 'ਸਉਡਿਸਇਸ ਇਸ ਇਸਣੀ ਆਦਿ ਬਖਾਨਿ ਕੈ ॥', 'सउडिसइस इस इसणी आद बखान कै ॥' ],
[ 'ਸਉਡਿਸਇਸ ਇਸ ਇਸਣੀ ਆਦਿ ਬਖਾਨਿ ਕੈ ॥', 'सउडिसइस इस इसणी आदि बखानि कै ॥' ],
[ 'ਅਜ਼ੋ ਗਸ਼ਤਾ ਹਰ ਜ਼ੱਰਰਾ ਖ਼ੁਰਸ਼ੈਦ ਤਾਬ ॥੯੬॥', 'अज़ो गशता हर ज़ररा क़ुरशैद ताब ॥९६॥' ],
[ 'ਹਮਾ ਸਾਇਲਿ ਲੁਤਫ਼ਿ ਹਕ ਪਰਵਰਸ਼ ॥', 'हमा साइल लुतफ़ हक परवरश ॥' ],
[ 'ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥', 'सु बैठ इकंत्र ॥५७८॥' ],
[ 'ਇਤਿ ਸ੍ਰੀ ਬਚਿਤ੍ਰ ਨਾਟਕੇ ਮਨੁ ਰਾਜਾ ਕੋ ਰਾਜ ਸਮਾਪਤੰ ॥੧॥੫॥', 'इत स्री बचित्र नाटके मन राजा को राज समापतं ॥१॥५॥' ],
[ 'ਢਾਕਨਹਾਰੇ ਪ੍ਰਭੂ ਹਮਾਰੇ ਜੀਅ ਪ੍ਰਾਨ ਸੁਖਦਾਤੇ ॥', 'ढाकनहारे प्रभू हमारे जीय प्रान सुखदाते ॥' ],
[ 'ਮੰਤ੍ਰੁ', 'मंत्र' ],
[ 'ਤਿਸੁ ਵਿਣੁ ਸਭੁ ਅਪਵਿਤ੍ਰੁ ਹੈ ਜੇਤਾ ਪੈਨਣੁ ਖਾਣੁ ॥', 'तिस विन सभ अपवित्र है जेता पैनन खान ॥' ],
[ 'ਸੋਢੀ ਸ੍ਰਿਸ੍ਟਿ ਸਕਲ ਤਾਰਣ ਕਉ ਅਬ ਗੁਰ ਰਾਮਦਾਸ ਕਉ ਮਿਲੀ ਬਡਾਈ ॥੩॥', 'सोढी स्रिस्ट सकल तारन कउ अब गुर रामदास कउ मिली बडायी ॥३॥' ],
[ 'ਭੰਜਨ ਗੜ੍ਹਣ ਸਮਥੁ ਤਰਣ ਤਾਰਣ ਪ੍ਰਭੁ ਸੋਈ ॥', 'भंजन गढ़न समथ तरन तारन प्रभ सोयी ॥' ],
[ 'ਰਾਗੁ ਗਉੜੀ ਥਿਤੰੀ ਕਬੀਰ ਜੀ ਕੰੀ ॥', 'राग गउड़ी थितंी कबीर जी कंी ॥' ],
[ 'ਹਮਾ ਸਾਇਲਿ ਲੁਤਫ਼ਿ ਹਕ ਪਰਵਰਸ਼ ॥', 'हमा साइलि लुतफ़ि हक परवरश ॥' ],
[ 'ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥', 'सु बैठि इकंत्र ॥५७८॥' ],
[ 'ਇਤਿ ਸ੍ਰੀ ਬਚਿਤ੍ਰ ਨਾਟਕੇ ਮਨੁ ਰਾਜਾ ਕੋ ਰਾਜ ਸਮਾਪਤੰ ॥੧॥੫॥', 'इति स्री बचित्र नाटके मनु राजा को राज समापतं ॥१॥५॥' ],
[ 'ਢਾਕਨਹਾਰੇ ਪ੍ਰਭੂ ਹਮਾਰੇ ਜੀਅ ਪ੍ਰਾਨ ਸੁਖਦਾਤੇ ॥', 'ढाकनहारे प्रभू हमारे जीअ प्रान सुखदाते ॥' ],
[ 'ਮੰਤ੍ਰੁ', 'मंत्रु' ],
[ 'ਤਿਸੁ ਵਿਣੁ ਸਭੁ ਅਪਵਿਤ੍ਰੁ ਹੈ ਜੇਤਾ ਪੈਨਣੁ ਖਾਣੁ ॥', 'तिसु विणु सभु अपवित्रु है जेता पैनणु खाणु ॥' ],
[ 'ਸੋਢੀ ਸ੍ਰਿਸ੍ਟਿ ਸਕਲ ਤਾਰਣ ਕਉ ਅਬ ਗੁਰ ਰਾਮਦਾਸ ਕਉ ਮਿਲੀ ਬਡਾਈ ॥੩॥', 'सोढी स्रिस्टि सकल तारण कउ अब गुर रामदास कउ मिली बडाई ॥३॥' ],
[ 'ਭੰਜਨ ਗੜ੍ਹਣ ਸਮਥੁ ਤਰਣ ਤਾਰਣ ਪ੍ਰਭੁ ਸੋਈ ॥', 'भंजन गढ़ण समथु तरण तारण प्रभु सोई ॥' ],
[ 'ਰਾਗੁ ਗਉੜੀ ਥਿਤੰੀ ਕਬੀਰ ਜੀ ਕੰੀ ॥', 'रागु गउड़ी थितीं कबीर जी कीं ॥' ],
]

describe( 'toHindi()', () => {
Expand Down

0 comments on commit 9b2db53

Please sign in to comment.