UNPKG

macedonian-transliteration

Version:

Transliteration Plugin for the Macedonian Cyrillic Alphabet

82 lines (78 loc) 3.36 kB
'use strict'; 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