UNPKG

translit-rue

Version:

Translit is a JavaScript library that transliterates the Rusyn language between the Latin alphabet and the Cyrillic script.

10 lines 13.1 kB
/*! * Translit v3.0.1 (Rusyn transliteration) * Copyright 2014–2025 Braňo Šandala (https://brano.me) * * app: https://tota.sk/translit * src: https://github.com/surfinzap/translit-rue * * Licensed under MIT (https://github.com/surfinzap/translit-rue/blob/main/LICENSE.txt) */ !function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).translit=e()}(function(){return function n(o,a,i){function l(r,e){if(!a[r]){if(!o[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(p)return p(r,!0);throw(e=new Error("Cannot find module '"+r+"'")).code="MODULE_NOT_FOUND",e}t=a[r]={exports:{}},o[r][0].call(t.exports,function(e){return l(o[r][1][e]||e)},t,t.exports,n,o,a,i)}return a[r].exports}for(var p="function"==typeof require&&require,e=0;e<i.length;e++)l(i[e]);return l}({1:[function(e,r,t){function n(e,r){return(e=>{if(Array.isArray(e))return e})(e)||((e,r)=>{var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,i,l=[],p=!0,u=!1;try{if(a=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;p=!1}else for(;!(p=(n=a.call(t)).done)&&(l.push(n.value),l.length!==r);p=!0);}catch(e){u=!0,o=e}finally{try{if(!p&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(u)throw o}}return l}})(e,r)||((e,r)=>{var t;if(e)return"string"==typeof e?o(e,r):"Map"===(t="Object"===(t={}.toString.call(e).slice(8,-1))&&e.constructor?e.constructor.name:t)||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?o(e,r):void 0})(e,r)||(()=>{throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")})()}function o(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}Object.defineProperty(t,"__esModule",{value:!0}),t.vowelsLowerCase=t.mapping=t.chars=void 0;t.vowelsLowerCase={latin:"aeiouyŷ",cyrillicHard:"аеіоуиыї",cyrillicSoft:"яєїёю"};for(var a="a-záäčďéěíĺľňóôöőŕřšťúüűůýŷž",i="абвгґдезіийклмнопрстуфъыьцчжшїщёєюях",l=a+i,p=l.toUpperCase(),a=(t.chars={latinLowerCase:a,cyrillicLowerCase:i,lowerCase:l,upperCase:p,all:l+p},{text:"текст",taxi:"таксі","jožk":"йожк"}),u={},c=0,s=Object.entries(a);c<s.length;c++){var f=n(s[c],2),y=f[0],f=f[1],y=y.charAt(0).toUpperCase()+y.slice(1),f=f.charAt(0).toUpperCase()+f.slice(1);u[y]=f}t.mapping={homoglyphs:{A:"А",a:"а",B:"В",C:"С",c:"с",E:"Е",e:"е",H:"Н",I:"І",i:"і",K:"К",M:"М",O:"О",o:"о",P:"Р",p:"р",T:"Т",X:"Х",x:"х",Y:"У",y:"у"},singleChars:{a:"а",b:"б",v:"в",h:"г",g:"ґ",d:"д",e:"е",z:"з",i:"і",y:"и",j:"й",k:"к",l:"л",m:"м",n:"н",o:"о",p:"п",r:"р",s:"с",t:"т",u:"у",f:"ф","ŷ":"ы",c:"ц","č":"ч","ž":"ж","š":"ш",A:"А",B:"Б",V:"В",H:"Г",G:"Ґ",D:"Д",E:"Е",Z:"З",I:"І",Y:"И",J:"Й",K:"К",L:"Л",M:"М",N:"Н",O:"О",P:"П",R:"Р",S:"С",T:"Т",U:"У",F:"Ф","Ŷ":"Ы",C:"Ц","Č":"Ч","Ž":"Ж","Š":"Ш"},digraphs:{ja:"я",Ja:"Я",ju:"ю",Ju:"Ю",je:"є",Je:"Є","’o":"ё","’O":"Ë",ji:"ї",Ji:"Ї",ch:"х",Ch:"Х","šč":"щ","Šč":"Щ","c’":"ць","C’":"Ць","s’":"сь","S’":"Сь","r’":"рь","R’":"Рь","z’":"зь","Z’":"Зь","ž’":"жь","Ž’":"Жь"},hardConsonants:{"c’a":"ця","C’a":"Ця","c’i":"цї","C’i":"Цї","c’o":"цё","C’o":"Цё","c’u":"цю","C’u":"Цю","s’a":"ся","S’a":"Ся","s’i":"сї","S’i":"Сї","s’o":"сё","S’o":"Сё","s’u":"сю","S’u":"Сю","r’a":"ря","R’a":"Ря","r’i":"рї","R’i":"Рї","r’o":"рё","R’o":"Рё","r’u":"рю","R’u":"Рю","z’a":"зя","Z’a":"Зя","z’i":"зї","Z’i":"Зї","z’o":"зё","Z’o":"Зё","z’u":"зю","Z’u":"Зю","ž’a":"жя","Ž’a":"Жя","ž’i":"жї","Ž’i":"Жї","ž’o":"жё","Ž’o":"Жё","ž’u":"жю","Ž’u":"Жю",zja:"зъя",Zja:"Зъя",zje:"зъє",Zje:"Зъє",zji:"зъї",Zji:"Зъї",zjo:"зъё",Zjo:"Зъё",zju:"зъю",Zju:"Зъю","R’jo":"Рьё","r’jo":"рьё",bji:"бъї",dja:"дъя",dje:"дъє",dji:"дъї",djo:"дъё",dju:"дъю",Dja:"Дъя",Dje:"Дъє",Dji:"Дъї",Djo:"Дъё",Dju:"Дъю",nja:"нъя",nje:"нъє",nji:"нъї",njo:"нъё",nju:"нъю",Nja:"Нъя",Nje:"Нъє",Nji:"Нъї",Njo:"Нъё",Nju:"Нъю"},softVowels:{ja:"я",je:"є",ji:"ї",jo:"ё",ju:"ю",Ja:"Я",Je:"Є",Ji:"Ї",Jo:"Ё",Ju:"Ю"},dtnlVowel:{"ďa":"дя","Ďa":"Дя","ťa":"тя","Ťa":"Тя","ňa":"ня","Ňa":"Ня","ľa":"ля","Ľa":"Ля","ďe":"дє","Ďe":"Дє","ťe":"тє","Ťe":"Тє","ňe":"нє","Ňe":"Hє","ľe":"лє","Ľe":"Лє","ďi":"дї","Ďi":"Дї","ťi":"тї","Ťi":"Тї","ňi":"нї","Ňi":"Нї","ľi":"лї","Ľi":"Лї","ďo":"дё","Ďo":"Дё","ťo":"тё","Ťo":"Тё","ňo":"нё","Ňo":"Hё","ľo":"лё","Ľo":"Лё","ďu":"дю","Ďu":"Дю","ťu":"тю","Ťu":"Тю","ňu":"ню","Ňu":"Hю","ľu":"лю","Ľu":"Лю"},dtnlDoubled:{"ď":"д","Ď":"Д","ť":"т","Ť":"Т","ň":"н","Ň":"Н","ľ":"л","Ľ":"Л"},dtnlAtWordEnd:{"ď":"дь","Ď":"Дь","ť":"ть","Ť":"Ть","ň":"нь","Ň":"Нь","ľ":"ль","Ľ":"Ль"},johoJomu:{joho:"ёго",jomu:"ёму",Joho:"Ёго",Jomu:"Ёму"},jojJov:{joj:"ёй",Joj:"Ёй",jov:"ёв",Jov:"Ёв"},exceptions:a,exceptionsCapitalized:u}},{}],2:[function(e,r,t){Object.defineProperty(t,"__esModule",{value:!0}),t.applyTransformations=function(e){var r=[i,l,p,n],t=[o.mapping.exceptionsCapitalized,o.mapping.exceptions,o.mapping.dtnlVowel,o.mapping.hardConsonants,o.mapping.dtnlAtWordEnd,o.mapping.digraphs,o.mapping.singleChars];return e=r.reduce(function(e,r){return r(e)},e),e=t.reduce(function(e,r){return(0,a.applyTranslitRule)(e,r,"cyrLat")},e)},t.mapDtnlDoubled=n,t.mapSoftVowelAfterHardVowel=p,t.mapSoftVowelAtWordStart=l,t.mapSoftVowelsSequence=i;var o=e("./constants"),a=e("./utils");function n(e){var r=new RegExp("(?<dtnl>[дтнл])(\\k<dtnl>)([яєїёю])","gi");return e.replace(r,function(e,r,t,n){return(0,a.applyTranslitRule)(r,o.mapping.dtnlDoubled,"cyrLat")+t+n})}function i(e){var r="([^"+o.chars.all+"]|^)((["+o.vowelsLowerCase.cyrillicSoft+"]){2,})",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t){return r+(0,a.applyTranslitRule)(t,o.mapping.softVowels,"cyrLat")})}function l(e){var r="([^"+o.chars.all+"]|^)(["+o.vowelsLowerCase.cyrillicSoft+"])",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t){return r+(0,a.applyTranslitRule)(t,o.mapping.softVowels,"cyrLat")})}function p(e){var r="(["+o.vowelsLowerCase.cyrillicHard+"])(["+o.vowelsLowerCase.cyrillicSoft+"])",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t){return r+(0,a.applyTranslitRule)(t,o.mapping.softVowels,"cyrLat")})}},{"./constants":1,"./utils":5}],3:[function(e,r,t){Object.defineProperty(t,"__esModule",{value:!0}),t.applyTransformations=function(e){var r=[l.normalizeApostrophes,o,a,c,s,p,u,n],t=[i.mapping.exceptionsCapitalized,i.mapping.exceptions,i.mapping.dtnlVowel,i.mapping.johoJomu,i.mapping.hardConsonants,i.mapping.dtnlAtWordEnd,i.mapping.digraphs,i.mapping.singleChars];return e=r.reduce(function(e,r){return r(e)},e),e=t.reduce(function(e,r){return(0,l.applyTranslitRule)(e,r,"latCyr")},e)},t.mapDtnlDoubled=n,t.mapJojJovBeginningWord=c,t.mapSingleJo=s,t.mapSoftVowelAfterHardVowel=u,t.mapSoftVowelAtWordStart=p,t.mapSoftVowelsSequence=a,t.mapSuperlative=o;var i=e("./constants"),l=e("./utils");function n(e){var r=new RegExp("(?<dtnl>[ďťňľ])(\\k<dtnl>)([aeiou])","gi");return e.replace(r,function(e,r,t,n){return(0,l.applyTranslitRule)(r,i.mapping.dtnlDoubled,"latCyr")+t+n})}function o(e){var r="(\\b)(naj)(["+i.vowelsLowerCase.latin+"])(["+i.chars.lowerCase+"]+?)(šŷj|šoho|šomu|šim|šŷm|šŷ|šŷch|šŷma|ša|šoj|šij|šu|šov|še)",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t,n,o,a){return r+(0,l.applyTranslitRule)(t,i.mapping.singleChars,"latCyr")+n+o+a})}function a(e){var r=new RegExp("(\\b)((jo|ja|je|ji|ju){2,})","gi");return e.replace(r,function(e,r,t){return r+(0,l.applyTranslitRule)(t,i.mapping.softVowels,"latCyr")})}function p(e){var r=new RegExp("(\\b)(j)([aeiuyŷ])","gi");return e.replace(r,function(e,r,t,n){return r+(0,l.applyTranslitRule)(t+n,i.mapping.softVowels,"latCyr")})}function u(e){var r="(["+i.vowelsLowerCase.latin+"])(ja|je|ji|jo|ju)",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t){return r+(0,l.applyTranslitRule)(t,i.mapping.softVowels,"latCyr")})}function c(e){var r=new RegExp("(\\b)(joj|jov)","gi");return e.replace(r,function(e,r,t){return r+(0,l.applyTranslitRule)(t,i.mapping.jojJov,"latCyr")})}function s(e){var r="(^|[^"+i.chars.all+"])(jo)([^"+i.chars.all+"]|$)",r=new RegExp(r,"gi");return e.replace(r,function(e,r,t,n){return r+(0,l.applyTranslitRule)(t,i.mapping.softVowels,"latCyr")+n})}},{"./constants":1,"./utils":5}],4:[function(e,r,t){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.translit=function(e,r){if("latCyr"!==r&&"cyrLat"!==r)throw new Error("Unsupported direction: ".concat(r));return e=(0,n.normalizeHomoglyphs)(e,r),e=(0,n.processUpperCase)(e,r),("latCyr"===r?o:a).applyTransformations(e)};var n=e("./utils"),o=p(e("./lat_to_cyr")),a=p(e("./cyr_to_lat"));function l(e){var r,t;return"function"!=typeof WeakMap?null:(r=new WeakMap,t=new WeakMap,(l=function(e){return e?t:r})(e))}function p(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=i(e)&&"function"!=typeof e)return{default:e};r=l(r);if(r&&r.has(e))return r.get(e);var t,n,o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=a?Object.getOwnPropertyDescriptor(e,t):null)&&(n.get||n.set)?Object.defineProperty(o,t,n):o[t]=e[t]);return o.default=e,r&&r.set(e,o),o}},{"./cyr_to_lat":2,"./lat_to_cyr":3,"./utils":5}],5:[function(e,r,t){function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.applyTranslitRule=c,t.normalizeApostrophes=function(e){var r="'’ʼ‘‛´`′";return e=(e=(e=e.replace(new RegExp("([csrzž])(["+r+"])([aeiou])","gi"),"$1’$3")).replace(new RegExp("([csrzž])(["+r+"])(\\B)","gi"),"$1’$3")).replace(new RegExp("(\\B)(["+r+"])([o])","gi"),"$1’$3")},t.normalizeHomoglyphs=function(e,o){var r=new RegExp("[".concat(l.chars.lowerCase,"]+"),"giu"),a=new RegExp("[".concat(l.chars.latinLowerCase,"]"),"giu"),i=new RegExp("[".concat(l.chars.cyrillicLowerCase,"]"),"giu");return e.replace(r,function(e){var r,t=(e.match(a)||[]).length,n=(e.match(i)||[]).length;return"latCyr"===o?r=n<=t?"cyrLat":"latCyr":"cyrLat"===o&&(r=t<=n?"latCyr":"cyrLat"),c(e,l.mapping.homoglyphs,r)})},t.processUpperCase=function(e,o){var r="(["+l.chars.upperCase+"’]{2,})([^"+l.chars.lowerCase+"]|$)",r=new RegExp(r,"g"),r=(e=e.replace(r,function(e,r,t){switch(o){case"latCyr":return a.applyTransformations(r.toLowerCase()).toUpperCase()+t;case"cyrLat":return p.applyTransformations(r.toLowerCase()).toUpperCase()+t}}),"([^"+l.chars.upperCase+"’]|^)(["+l.chars.upperCase+"’])(?=[-–—\\s]["+l.chars.upperCase+"][^"+l.chars.lowerCase+"’])"),r=new RegExp(r,"g"),r=(e=e.replace(r,function(e,r,t){switch(o){case"latCyr":return r+a.applyTransformations(t.toLowerCase()).toUpperCase();case"cyrLat":return r+p.applyTransformations(t.toLowerCase()).toUpperCase()}}),"(["+l.chars.upperCase+"’][\\s])(["+l.chars.upperCase+"])([^"+l.chars.upperCase+"]|$)"),r=new RegExp(r,"g");return e=e.replace(r,function(e,r,t,n){switch(o){case"latCyr":return r+a.applyTransformations(t.toLowerCase()).toUpperCase()+n;case"cyrLat":return r+p.applyTransformations(t.toLowerCase()).toUpperCase()+n}})};var l=e("./constants"),a=n(e("./lat_to_cyr")),p=n(e("./cyr_to_lat"));function u(e){var r,t;return"function"!=typeof WeakMap?null:(r=new WeakMap,t=new WeakMap,(u=function(e){return e?t:r})(e))}function n(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||"object"!=i(e)&&"function"!=typeof e)return{default:e};r=u(r);if(r&&r.has(e))return r.get(e);var t,n,o={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((n=a?Object.getOwnPropertyDescriptor(e,t):null)&&(n.get||n.set)?Object.defineProperty(o,t,n):o[t]=e[t]);return o.default=e,r&&r.set(e,o),o}function c(e,r,t){if("cyrLat"===t)for(var n in r){var o=new RegExp(r[n],"g");e=e.replace(o,n)}else if("latCyr"===t)for(var a in r){var i=new RegExp(a,"g");e=e.replace(i,r[a])}return e}},{"./constants":1,"./cyr_to_lat":2,"./lat_to_cyr":3}]},{},[4])(4)});