macedonian-transliteration
Version:
Transliteration Plugin for the Macedonian Cyrillic Alphabet
82 lines (78 loc) • 3.36 kB
JavaScript
;
function latin_to_cyrillic(input) {
/*
Translitarates from Latin to Cyrillic
@param input - Input to transliterate
*/
const latinToCyrillicMap = {
'a': 'а', 'b': 'б', 'c': 'ц', 'd': 'д', 'e': 'е', 'f': 'ф', 'g': 'г',
'h': 'х', 'i': 'и', 'j': 'ј', 'k': 'к', 'l': 'л', 'm': 'м', 'n': 'н',
'o': 'о', 'p': 'п', 'q': 'ќ', 'r': 'р', 's': 'с', 't': 'т', 'u': 'у',
'v': 'в', 'w': 'в', 'x': 'џ', 'y': 'ѕ', 'z': 'з',
'A': 'А', 'B': 'Б', 'C': 'Ц', 'D': 'Д', 'E': 'Е', 'F': 'Ф', 'G': 'Г',
'H': 'Х', 'I': 'И', 'J': 'Ј', 'K': 'К', 'L': 'Л', 'M': 'М', 'N': 'Н',
'O': 'О', 'P': 'П', 'Q': 'Ќ', 'R': 'Р', 'S': 'С', 'T': 'Т', 'U': 'У',
'V': 'В', 'W': 'В', 'X': 'Џ', 'Y': 'Ѕ', 'Z': 'З',
'sh': 'ш', 'Sh': 'Ш', 'SH': 'Ш', 'sH': 'Ш',
'ch': 'ч', 'Ch': 'Ч', 'CH': 'Ч', 'cH': 'Ч',
'dzh': 'џ', 'Dzh': 'Џ', 'DZH': 'Џ', 'dZH': 'Џ', 'DzH': 'Џ',
'nj': 'њ', 'Nj': 'Њ',
'Lj': 'Љ', 'LJ': 'Љ', 'lj': 'љ',
'Kj': 'Ќ', 'KJ': 'Ќ', 'kj': 'ќ',
'Gj': 'Ѓ', 'GJ': 'Ѓ', 'gj': 'ѓ',
'Zh': 'Ж', 'ZH': 'Ж', 'zh': 'ж',
'Dz': 'S', 'DZ': 'S', 'dz': 'ѕ'
};
let output = '';
let i = 0;
while (i < input.length) {
let char = input[i];
let nextTwoChars = input.substr(i, 2);
let nextThreeChars = input.substr(i, 3);
if (latinToCyrillicMap.hasOwnProperty(nextThreeChars)) {
output += latinToCyrillicMap[nextThreeChars];
i += 3;
}
else if (latinToCyrillicMap.hasOwnProperty(nextTwoChars)) {
output += latinToCyrillicMap[nextTwoChars];
i += 2;
}
else if (latinToCyrillicMap.hasOwnProperty(char)) {
output += latinToCyrillicMap[char];
i++;
}
else {
output += char;
i++;
}
}
return output;
}
function cyrillic_to_latin(input) {
/*
Translitarates from Cyrillic to latin
@param input: The text to transliterate
*/
const cyrillicToLatinMap = {
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'ѓ': 'gj', 'е': 'e', 'ж': 'zh', 'з': 'z', 'ѕ': 'dz', 'и': 'i',
'ј': 'j', 'к': 'k', 'л': 'l', 'љ': 'lj', 'м': 'm', 'н': 'n', 'њ': 'nj', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's',
'т': 't', 'ќ': 'kj', 'у': 'u', 'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'џ': 'dzh', 'ш': 'sh',
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Ѓ': 'Gj', 'Е': 'E', 'Ж': 'Zh', 'З': 'Z', 'Ѕ': 'Dz', 'И': 'I',
'Ј': 'J', 'К': 'K', 'Л': 'L', 'Љ': 'Lj', 'М': 'M', 'Н': 'N', 'Њ': 'Nj', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S',
'Т': 'T', 'Ќ': 'Kj', 'У': 'U', 'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Џ': 'Dzh', 'Ш': 'Sh'
};
let convertedText = '';
for (let i = 0; i < input.length; i++) {
const char = input[i];
if (cyrillicToLatinMap[char]) {
convertedText += cyrillicToLatinMap[char];
}
else {
convertedText += char;
}
}
return convertedText;
}
exports.cyrillic_to_latin = cyrillic_to_latin;
exports.latin_to_cyrillic = latin_to_cyrillic;
//# sourceMappingURL=index.js.map