mesdan
Version:
Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.
46 lines (45 loc) • 2.28 kB
JavaScript
import { gayriİşaretlerdenMi, harekeMi, kesekMi, tenvinMi, şeddeMi } from '../../aletler/harf-tedkiki-kume';
export function silOsmaniMetindenHarfBaşra(mevcutMetin, alemMevkisi) {
let metin = mevcutMetin;
const alemBaşrası = metin.slice(0, alemMevkisi.başMevki);
const alemSonrası = metin.slice(alemMevkisi.sonMevki);
const alemBaşrasındakiHarf = alemBaşrası.slice(-1);
const alemBaşrasındakiİkiHarf = alemBaşrası.slice(-2);
const alemBaşrasıHarekeMi = harekeMi(alemBaşrasındakiHarf);
const alemBaşrasıTenvinMi = tenvinMi(alemBaşrasındakiHarf);
const alemBaşrasıGayriİşaretlerdenMi = gayriİşaretlerdenMi(alemBaşrasındakiHarf);
const alemBaşrasıŞeddeMi = şeddeMi(alemBaşrasındakiİkiHarf);
const alemBaşrasıKesmeMi = kesekMi(alemBaşrasındakiHarf);
const alemBaşrasıŞeddeHariciMi = alemBaşrasıHarekeMi || alemBaşrasıTenvinMi || alemBaşrasıGayriİşaretlerdenMi;
let silinecekHarfAdedi = 1;
if (alemBaşrasıŞeddeMi) {
silinecekHarfAdedi = 3;
}
else if (alemBaşrasıŞeddeHariciMi) {
silinecekHarfAdedi = 2;
}
else if (alemBaşrasıKesmeMi) {
const kesekEvvelindekiHarf = alemBaşrası.slice(0, alemBaşrası.length - 1).slice(-1);
const kesekEvvelindekiİkiHarf = alemBaşrası.slice(0, alemBaşrası.length - 1).slice(-2);
const kesekEvveliHarekeMi = harekeMi(kesekEvvelindekiHarf);
const kesekEvveliTenvinMi = tenvinMi(kesekEvvelindekiHarf);
const kesekEvveliGayriİşaretlerdenMi = gayriİşaretlerdenMi(kesekEvvelindekiHarf);
const kesekEvveliŞeddeHariciMi = kesekEvveliHarekeMi || kesekEvveliTenvinMi || kesekEvveliGayriİşaretlerdenMi;
const kesekEvveliŞeddeMi = şeddeMi(kesekEvvelindekiİkiHarf);
if (kesekEvveliŞeddeMi) {
silinecekHarfAdedi = 4;
}
else if (kesekEvveliŞeddeHariciMi) {
silinecekHarfAdedi = 3;
}
else {
silinecekHarfAdedi = 2;
}
}
const silinmedenSonra = alemBaşrası.slice(0, alemBaşrası.length - silinecekHarfAdedi);
metin = silinmedenSonra + alemSonrası;
return {
metinOsmani: metin,
alemBaşMevkisi: silinmedenSonra.length,
};
}