2022-09-09 11:53:35 +00:00
|
|
|
|
const ru2en: { [key: string]: string } = {
|
|
|
|
|
А: 'A',
|
|
|
|
|
а: 'a',
|
|
|
|
|
Б: 'B',
|
|
|
|
|
б: 'b',
|
|
|
|
|
В: 'V',
|
|
|
|
|
в: 'v',
|
|
|
|
|
Г: 'G',
|
|
|
|
|
г: 'g',
|
|
|
|
|
Д: 'D',
|
|
|
|
|
д: 'd',
|
|
|
|
|
Е: 'E',
|
|
|
|
|
е: 'e',
|
|
|
|
|
Ё: 'E',
|
|
|
|
|
ё: 'e',
|
|
|
|
|
Ж: 'Zh',
|
|
|
|
|
ж: 'zh',
|
|
|
|
|
З: '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',
|
|
|
|
|
Х: 'Kh',
|
|
|
|
|
х: 'kh',
|
|
|
|
|
Ц: 'Ts',
|
|
|
|
|
ц: 'ts',
|
|
|
|
|
Ч: 'Ch',
|
|
|
|
|
ч: 'ch',
|
|
|
|
|
Ш: 'Sh',
|
|
|
|
|
ш: 'sh',
|
|
|
|
|
Щ: 'Sch',
|
|
|
|
|
щ: 'sch',
|
|
|
|
|
ь: 'i',
|
|
|
|
|
Ы: 'Y',
|
|
|
|
|
ы: 'y',
|
2022-10-05 08:55:26 +00:00
|
|
|
|
ъ: 'j',
|
2022-09-09 11:53:35 +00:00
|
|
|
|
Э: 'E',
|
|
|
|
|
э: 'e',
|
|
|
|
|
Ю: 'Yu',
|
|
|
|
|
ю: 'yu',
|
|
|
|
|
Я: 'Ya',
|
2023-11-14 15:10:00 +00:00
|
|
|
|
я: 'ya',
|
2022-09-09 11:53:35 +00:00
|
|
|
|
}
|
|
|
|
|
|
2022-12-01 18:45:35 +00:00
|
|
|
|
export const translit = (str: string) => {
|
|
|
|
|
if (!str) {
|
|
|
|
|
return ''
|
|
|
|
|
}
|
2022-09-09 11:53:35 +00:00
|
|
|
|
|
2022-12-01 18:45:35 +00:00
|
|
|
|
const isCyrillic = /[ЁА-яё]/.test(str)
|
2022-09-09 11:53:35 +00:00
|
|
|
|
|
2022-12-01 18:45:35 +00:00
|
|
|
|
if (!isCyrillic) {
|
|
|
|
|
return str
|
|
|
|
|
}
|
2022-09-09 11:53:35 +00:00
|
|
|
|
|
2022-12-01 18:45:35 +00:00
|
|
|
|
return [...str].map((c) => ru2en[c] || c).join('')
|
2022-09-09 11:53:35 +00:00
|
|
|
|
}
|