@@ -10,8 +10,8 @@ import {
1010 WAW ,
1111 YAA ,
1212} from '../constants/arabic-letters' ;
13- import { setCharAt , similarityScore } from '../utils' ;
1413import { fillDefaultOptions , type OldArabicOptions } from '../options' ;
14+ import { setCharAt , similarityScore } from '../utils' ;
1515
1616/**
1717 * Remove all tashkeel from text
@@ -45,27 +45,31 @@ export function toOldArabic(sentence: string, option: OldArabicOptions = {}): st
4545 // if letter is not Arabic letter => append to newSentence
4646 if ( ! ARABIC_DOTLESS_DICT . hasOwnProperty ( sentence [ letter ] ) ) {
4747 newSentence += sentence [ letter ] ;
48+ }
49+ // Handle 'ن' Issue:
50+ // if 'ن' is not last character && next character is Arabic letter or 'ـ'
51+ // then replace it with 'ب' corresponding dotless letter => 'ٮ'
52+ else if (
53+ replaceMidNoonWithBah &&
54+ sentence [ letter ] == 'ن' &&
55+ letter + 1 < sentence . length &&
56+ ( ARABIC_DOTLESS_DICT . hasOwnProperty ( sentence [ letter + 1 ] ) || sentence [ letter + 1 ] == 'ـ' )
57+ ) {
58+ newSentence += ARABIC_DOTLESS_DICT [ 'ب' ] ;
59+ }
60+ // Handle 'ي' Issue
61+ // if 'ي' is not last character && next character is Arabic letter or 'ـ'
62+ // then replace it with 'ب' corresponding dotless letter => 'ٮ'
63+ else if (
64+ replaceMidYahWithBah &&
65+ sentence [ letter ] == 'ي' &&
66+ letter + 1 < sentence . length &&
67+ ( ARABIC_DOTLESS_DICT . hasOwnProperty ( sentence [ letter + 1 ] ) || sentence [ letter + 1 ] == 'ـ' )
68+ ) {
69+ newSentence += ARABIC_DOTLESS_DICT [ 'ب' ] ;
4870 } else {
49- if (
50- // Handle 'ن' Issue
51- replaceMidNoonWithBah &&
52- sentence [ letter ] == 'ن' &&
53- letter + 1 < sentence . length &&
54- ( ARABIC_DOTLESS_DICT . hasOwnProperty ( sentence [ letter + 1 ] ) || sentence [ letter + 1 ] == 'ـ' )
55- ) {
56- newSentence += ARABIC_DOTLESS_DICT [ 'ب' ] ;
57- } else if (
58- // Handle 'ي' Issue
59- replaceMidYahWithBah &&
60- sentence [ letter ] == 'ي' &&
61- letter + 1 < sentence . length &&
62- ( ARABIC_DOTLESS_DICT . hasOwnProperty ( sentence [ letter + 1 ] ) || sentence [ letter + 1 ] == 'ـ' )
63- ) {
64- newSentence += ARABIC_DOTLESS_DICT [ 'ب' ] ;
65- } else {
66- // if letter is Arabic letter => append corresponding dotless letter to newSentence
67- newSentence += ARABIC_DOTLESS_DICT [ sentence [ letter ] ] ;
68- }
71+ // if letter is Arabic letter => append corresponding dotless letter to newSentence
72+ newSentence += ARABIC_DOTLESS_DICT [ sentence [ letter ] ] ;
6973 }
7074 }
7175 return newSentence ;
0 commit comments