mesdan
Version:
Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.
46 lines (45 loc) • 2.24 kB
JavaScript
import { gayriİşaretlerdenMi, harekeMi, kesmeMi, tenvinMi, şeddeMi } from "../aletler/harf-tedkiki";
export function silOsmaniMetindenHarfBaşra(mevcutMetin, alemMevkisi) {
let metin = mevcutMetin;
const alemİlkresi = metin.slice(0, alemMevkisi.başMevki);
const alemSonrası = metin.slice(alemMevkisi.sonMevki);
const alemİlkresindekiHarf = alemİlkresi.slice(-1);
const alemİlkresindekiİkiHarf = alemİlkresi.slice(-2);
const alemİlkresiHarekeMi = harekeMi(alemİlkresindekiHarf);
const alemİlkresiTenvinMi = tenvinMi(alemİlkresindekiHarf);
const alemİlkresiGayriİşaretlerdenMi = gayriİşaretlerdenMi(alemİlkresindekiHarf);
const alemİlkresiŞeddeMi = şeddeMi(alemİlkresindekiİkiHarf);
const alemİlkresiKesmeMi = kesmeMi(alemİlkresindekiHarf);
const alemİlkresiŞeddeHariciMi = alemİlkresiHarekeMi || alemİlkresiTenvinMi || alemİlkresiGayriİşaretlerdenMi;
let silinecekHarfAdedi = 1;
if (alemİlkresiŞeddeMi) {
silinecekHarfAdedi = 3;
}
else if (alemİlkresiŞeddeHariciMi) {
silinecekHarfAdedi = 2;
}
else if (alemİlkresiKesmeMi) {
const kesmeEvvelindekiHarf = alemİlkresi.slice(0, alemİlkresi.length - 1).slice(-1);
const kesmeEvvelindekiİkiHarf = alemİlkresi.slice(0, alemİlkresi.length - 1).slice(-2);
const kesmeEvveliHarekeMi = harekeMi(kesmeEvvelindekiHarf);
const kesmeEvveliTenvinMi = tenvinMi(kesmeEvvelindekiHarf);
const kesmeEvveliGayriİşaretlerdenMi = gayriİşaretlerdenMi(kesmeEvvelindekiHarf);
const kesmeEvveliŞeddeHariciMi = kesmeEvveliHarekeMi || kesmeEvveliTenvinMi || kesmeEvveliGayriİşaretlerdenMi;
const kesmeEvveliŞeddeMi = şeddeMi(kesmeEvvelindekiİkiHarf);
if (kesmeEvveliŞeddeMi) {
silinecekHarfAdedi = 4;
}
else if (kesmeEvveliŞeddeHariciMi) {
silinecekHarfAdedi = 3;
}
else {
silinecekHarfAdedi = 2;
}
}
const silinmedenSonra = alemİlkresi.slice(0, alemİlkresi.length - silinecekHarfAdedi);
metin = silinmedenSonra + alemSonrası;
return {
metinOsmani: metin,
alemBaşMevkisi: silinmedenSonra.length,
};
}