ktaranov
3/17/2017 - 2:11 PM

Russian symbol mapping to another language

Russian symbol mapping to another language

Source: http://translit.net/

RUEN
аa
бb
вv
гg
дd
еe
ёjo
жzh
зz
иi
йj
кk
лl
мm
нn
оo
пp
рr
сs
тt
уu
фf
хh
цc
чch
шsh
щshh
ъ#
ыy
ь'
эje
юju
яja
АA
БB
ВV
ГG
ДD
ЕE
ЁJo
ЖZh
ЗZ
ИI
ЙJ
КK
ЛL
МM
НN
ОO
ПP
РR
СS
ТT
УU
ФF
ХH
ЦC
ЧCh
ШSh
ЩShh
Ъ##
ЫY
Ь''
ЭJe
ЮJu
ЯJa
DECLARE @LangMapping TABLE (RU NCHAR(1), EN VARCHAR(10));

INSERT INTO @LangMapping(RU, EN)
VALUES 
('а', 'a'),
('б', 'b'),
('в', 'v'),
('г', 'g'),
('д', 'd'),
('е', 'e'),
('ё', 'jo'),
('ж', 'zh'),
('з', 'z'),
('и', 'i'),
('й', 'j'),
('к', 'k'),
('л', 'l'),
('м', 'm'),
('н', 'n'),
('о', 'o'),
('п', 'p'),
('р', 'r'),
('с', 's'),
('т', 't'),
('у', 'u'),
('ф', 'f'),
('х', 'h'),
('ц', 'c'),
('ч', 'ch'),
('ш', 'sh'),
('щ', 'shh'),
('ъ', ''),
('ы', 'y'),
('ь', ''),
('э', 'je'),
('ю', 'ju'),
('я', 'ja'),
('А', 'A'),
('Б', 'B'),
('В', 'V'),
('Г', 'G'),
('Д', 'D'),
('Е', 'E'),
('Ё', 'Jo'),
('Ж', 'Zh'),
('З', 'Z'),
('И', 'I'),
('Й', 'J'),
('К', 'K'),
('Л', 'L'),
('М', 'M'),
('Н', 'N'),
('О', 'O'),
('П', 'P'),
('Р', 'R'),
('С', 'S'),
('Т', 'T'),
('У', 'U'),
('Ф', 'F'),
('Х', 'H'),
('Ц', 'C'),
('Ч', 'Ch'),
('Ш', 'Sh'),
('Щ', 'Shh'),
('Ъ', ''),
('Ы', 'Y'),
('Ь', ''),
('Э', 'Je'),
('Ю', 'Ju'),
('Я', 'Ja');

DECLARE @TestData TABLE (NameRU NVARCHAR(200) NOT NULL, TranslitEN VARCHAR(200) NULL);
DECLARE @tsqlCommand NVARCHAR(2000) = N'NameRU COLLATE Cyrillic_General_CS_AS, ';

SELECT @tsqlCommand = 'REPLACE(' + @tsqlCommand + '''' + lm.RU + ''', ''' + lm.EN + '''),'
FROM @LangMapping AS lm;

SET @tsqlCommand = 'SELECT NameRU, ' + LEFT(@tsqlCommand, LEN(@tsqlCommand) - 1) + ' AS TranslitEN FROM @TestData';

PRINT(@tsqlCommand);

INSERT INTO @TestData(NameRU) VALUES
 ('Москва-Пассажирская-Ярославская'),
 ('Губкин'),
 ('Гадяч им. Сергиенко Николая Ивановича');

SELECT NameRU, REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(NameRU COLLATE Cyrillic_General_CS_AS, 'а', 'a'),'б', 'b'),'в', 'v'),'г', 'g'),'д', 'd'),'е', 'e'),'ё', 'jo'),'ж', 'zh'),'з', 'z'),'и', 'i'),'й', 'j'),'к', 'k'),'л', 'l'),'м', 'm'),'н', 'n'),'о', 'o'),'п', 'p'),'р', 'r'),'с', 's'),'т', 't'),'у', 'u'),'ф', 'f'),'х', 'h'),'ц', 'c'),'ч', 'ch'),'ш', 'sh'),'щ', 'shh'),'ъ', ''),'ы', 'y'),'ь', ''),'э', 'je'),'ю', 'ju'),'я', 'ja'),'А', 'A'),'Б', 'B'),'В', 'V'),'Г', 'G'),'Д', 'D'),'Е', 'E'),'Ё', 'Jo'),'Ж', 'Zh'),'З', 'Z'),'И', 'I'),'Й', 'J'),'К', 'K'),'Л', 'L'),'М', 'M'),'Н', 'N'),'О', 'O'),'П', 'P'),'Р', 'R'),'С', 'S'),'Т', 'T'),'У', 'U'),'Ф', 'F'),'Х', 'H'),'Ц', 'C'),'Ч', 'Ch'),'Ш', 'Sh'),'Щ', 'Shh'),'Ъ', ''),'Ы', 'Y'),'Ь', ''),'Э', 'Je'),'Ю', 'Ju'),'Я', 'Ja') AS TranslitEN FROM @TestData