mesdan
Version:
Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.
38 lines (37 loc) • 1.38 kB
JavaScript
import { harfKelimeBaşındaMı } from '../../aletler/harf-kelime-basinda-mi';
import { tağyirMesiMi } from '../../aletler/harf-tedkiki-kume';
import { LATIN_HURUFATI_VE_RAKAMATI_REGEX } from '../sabit';
import { harfTebdilleri, sabitTebdiller } from './harf-tebdilleri';
export function harfLatinidenOsmaniye(latiniHarf, evvelkiHarf, shiftBasılıMı, altBasılıMı) {
if (tağyirMesiMi(latiniHarf))
return '';
const osmaniMuadil = sabitTebdiller.get(latiniHarf);
if (osmaniMuadil)
return osmaniMuadil;
const kaide = harfTebdilleri[latiniHarf];
if (!kaide) {
if (LATIN_HURUFATI_VE_RAKAMATI_REGEX.test(latiniHarf)) {
if (evvelkiHarf === '؟') {
return '';
}
return '؟';
}
return latiniHarf;
}
const kelimeBaşında = harfKelimeBaşındaMı(evvelkiHarf);
if (altBasılıMı && kaide.alt) {
return kaide.alt;
}
if (shiftBasılıMı && kaide.shift) {
const shiftKaidesi = kaide.shift;
if (typeof shiftKaidesi === 'string') {
return shiftKaidesi;
}
return kelimeBaşında ? shiftKaidesi.baş : shiftKaidesi.bel;
}
const temelKaide = kaide.asıl;
if (typeof temelKaide === 'string') {
return temelKaide;
}
return kelimeBaşında ? temelKaide.baş : temelKaide.bel;
}