Russian symbol mapping to another language
Source: http://translit.net/
RU | EN |
---|---|
а | 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