kiril-lotin
Version:
O'zbek tilida kiril va lotin o'rtasida konvertatsiya qilish uchun oddiy modul
96 lines (95 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.kirilToLotin = kirilToLotin;
exports.lotinToKiril = lotinToKiril;
const kirilToLotinMap = {
А: "A",
а: "a",
Б: "B",
б: "b",
В: "V",
в: "v",
Г: "G",
г: "g",
Д: "D",
д: "d",
Е: "E",
е: "e",
Ё: "Yo",
ё: "yo",
Ж: "J",
ж: "j",
З: "Z",
з: "z",
И: "I",
и: "i",
Й: "Y",
й: "y",
К: "K",
к: "k",
Л: "L",
л: "l",
М: "M",
м: "m",
Н: "N",
н: "n",
О: "O",
о: "o",
П: "P",
п: "p",
Р: "R",
р: "r",
С: "S",
с: "s",
Т: "T",
т: "t",
У: "U",
у: "u",
Ф: "F",
ф: "f",
Х: "X",
х: "x",
Ц: "Ts",
ц: "ts",
Ч: "Ch",
ч: "ch",
Ш: "Sh",
ш: "sh",
Щ: "Sh",
щ: "sh",
Ъ: "",
ъ: "",
Ы: "I",
ы: "i",
Ь: "",
ь: "",
Э: "E",
э: "e",
Ю: "Yu",
ю: "yu",
Я: "Ya",
я: "ya",
Ў: "O‘",
ў: "o‘",
Ғ: "G‘",
ғ: "g‘",
Қ: "Q",
қ: "q",
Ҳ: "H",
ҳ: "h",
};
const lotinToKirilMap = Object.fromEntries(Object.entries(kirilToLotinMap).map(([k, v]) => [v, k]));
function kirilToLotin(text) {
return text
.split("")
.map((ch) => kirilToLotinMap[ch] || ch)
.join("");
}
function lotinToKiril(text) {
const patterns = Object.entries(lotinToKirilMap).sort((a, b) => b[0].length - a[0].length); // uzunroq match birinchi
let result = text;
for (let [lt, kr] of patterns) {
result = result.split(lt).join(kr);
}
return result;
}