Skip to content

Instantly share code, notes, and snippets.

@ledovsky
Last active April 21, 2026 14:57
Show Gist options
  • Select an option

  • Save ledovsky/6398962 to your computer and use it in GitHub Desktop.

Select an option

Save ledovsky/6398962 to your computer and use it in GitHub Desktop.
Транслитерация на python
# name: это строка которую транслитим
def transliterate(name):
"""
Автор: LarsKort
Дата: 16/07/2011; 1:05 GMT-4;
Не претендую на "хорошесть" словарика. В моем случае и такой пойдет,
вы всегда сможете добавить свои символы и даже слова. Только
это нужно делать в обоих списках, иначе будет ошибка.
"""
# Слоаврь с заменами
slovar = {'а':'a','б':'b','в':'v','г':'g','д':'d','е':'e','ё':'yo',
'ж':'zh','з':'z','и':'i','й':'i','к':'k','л':'l','м':'m','н':'n',
'о':'o','п':'p','р':'r','с':'s','т':'t','у':'u','ф':'f','х':'h',
'ц':'c','ч':'ch','ш':'sh','щ':'sch','ъ':'','ы':'y','ь':'','э':'e',
'ю':'u','я':'ya', 'А':'A','Б':'B','В':'V','Г':'G','Д':'D','Е':'E','Ё':'YO',
'Ж':'ZH','З':'Z','И':'I','Й':'I','К':'K','Л':'L','М':'M','Н':'N',
'О':'O','П':'P','Р':'R','С':'S','Т':'T','У':'U','Ф':'F','Х':'H',
'Ц':'C','Ч':'CH','Ш':'SH','Щ':'SCH','Ъ':'','Ы':'y','Ь':'','Э':'E',
'Ю':'U','Я':'YA',',':'','?':'',' ':'_','~':'','!':'','@':'','#':'',
'$':'','%':'','^':'','&':'','*':'','(':'',')':'','-':'','=':'','+':'',
':':'',';':'','<':'','>':'','\'':'','"':'','\\':'','/':'','№':'',
'[':'',']':'','{':'','}':'','ґ':'','ї':'', 'є':'','Ґ':'g','Ї':'i',
'Є':'e', '—':''}
# Циклически заменяем все буквы в строке
for key in slovar:
name = name.replace(key, slovar[key])
return name
@linuxoid69

Copy link
Copy Markdown

У тебя бага вот тут -> 'Ф':'Х'

@repen

repen commented Jul 22, 2019

Copy link
Copy Markdown

норм не перввый раз юзаю

@company-ms

Copy link
Copy Markdown

Класс

@Pendalf61

Copy link
Copy Markdown

Спасибо, помогло. Немного поправил

def transliterate(name):
   """
   Автор: LarsKort
   Дата: 16/07/2011; 1:05 GMT-4;
   Не претендую на "хорошесть" словарика. В моем случае и такой пойдет,
   вы всегда сможете добавить свои символы и даже слова. Только
   это нужно делать в обоих списках, иначе будет ошибка.
   """
   # Слоаврь с заменами
   slovar = {'а':'a','б':'b','в':'v','г':'g','д':'d','е':'e','ё':'e',
      'ж':'zh','з':'z','и':'i','й':'i','к':'k','л':'l','м':'m','н':'n',
      'о':'o','п':'p','р':'r','с':'s','т':'t','у':'u','ф':'f','х':'h',
      'ц':'c','ч':'cz','ш':'sh','щ':'scz','ъ':'','ы':'y','ь':'','э':'e',
      'ю':'u','я':'ja', 'А':'A','Б':'B','В':'V','Г':'G','Д':'D','Е':'E','Ё':'E',
      'Ж':'ZH','З':'Z','И':'I','Й':'I','К':'K','Л':'L','М':'M','Н':'N',
      'О':'O','П':'P','Р':'R','С':'S','Т':'T','У':'U','Ф':'F','Х':'H',
      'Ц':'C','Ч':'CZ','Ш':'SH','Щ':'SCH','Ъ':'','Ы':'y','Ь':'','Э':'E',
      'Ю':'U','Я':'YA',',':'','?':'',' ':'_','~':'','!':'','@':'','#':'',
      '$':'','%':'','^':'','&':'','*':'','(':'',')':'','-':'','=':'','+':'',
      ':':'',';':'','<':'','>':'','\'':'','"':'','\\':'','/':'','№':'',
      '[':'',']':'','{':'','}':'','ґ':'','ї':'', 'є':'','Ґ':'g','Ї':'i',
      'Є':'e', '—':''}
        
   # Циклически заменяем все буквы в строке
   for key in slovar:
      name = name.replace(key, slovar[key])
   return name

@homus32

homus32 commented Sep 12, 2020

Copy link
Copy Markdown
dictionary = {
    'а': 'a',
    'б': 'b',
    'в': 'v',
    'г': 'g',
    'д': 'd',
    'е': 'e',
    'ё': 'e',
    'ж': 'zh',
    'з': 'z',
    'и': 'i',
    'й': 'i',
    'к': 'k',
    'л': 'l',
    'м': 'm',
    'н': 'n',
    'о': 'o',
    'п': 'p',
    'р': 'r',
    'с': 's',
    'т': 't',
    'у': 'u',
    'ф': 'f',
    'х': 'h',
    'ц': 'c',
    'ч': 'cz',
    'ш': 'sh',
    'щ': 'scz',
    'ъ': '',
    'ы': 'y',
    'ь': 'b',
    'э': 'e',
    'ю': 'u',
    'я': 'ja',
    'А': 'A',
    'Б': 'B',
    'В': 'V',
    'Г': 'G',
    'Д': 'D',
    'Е': 'E',
    'Ё': 'E',
    'Ж': 'ZH',
    'З': 'Z',
    'И': 'I',
    'Й': 'I',
    'К': 'K',
    'Л': 'L',
    'М': 'M',
    'Н': 'N',
    'О': 'O',
    'П': 'P',
    'Р': 'R',
    'С': 'S',
    'Т': 'T',
    'У': 'U',
    'Ф': 'F',
    'Х': 'H',
    'Ц': 'C',
    'Ч': 'CZ',
    'Ш': 'SH',
    'Щ': 'SCH',
    'Ъ': '',
    'Ы': 'y',
    'Ь': 'b',
    'Э': 'E',
    'Ю': 'U',
    'Я': 'YA',
    ',': ',',
    '?': '?',
    ' ': '_',
    '~': '~',
    '!': '!',
    '@': '@',
    '#': '#',
    '$': '$',
    '%': '%',
    '^': '^',
    '&': '&',
    '*': '*',
    '(': '(',
    ')': ')',
    '-': '-',
    '=': '=',
    '+': '+',
    ':': ':',
    ';': ';',
    '<': '<',
    '>': '>',
    '\'': '\'',
    '"': '"',
    '\\': '\\',
    '/': '/',
    '№': '#',
    '[': '[',
    ']': ']',
    '{': '{',
    '}': '}',
    'ґ': 'r',
    'ї': 'r',
    'є': 'e',
    'Ґ': 'g',
    'Ї': 'i',
    'Є': 'e',
    '—': '-'
}

@NickVeld

NickVeld commented Oct 13, 2020

Copy link
Copy Markdown

For the author (or future users if the gist won't be changed) :

'я':'ja'
'Я': 'YA'

Choose either "j" or "y"

"ё" is "yo" or "jo" not "e"

"ч" is "ch" not "cz"

"щ" is "sch" or "shh" not "scz"

'Ы': 'y' - the case can be saved

@nirvichara

nirvichara commented Oct 29, 2020

Copy link
Copy Markdown

Господа, не занимайтесь херней. Транслитерацию надо делать в обратном порядке - с латиницы на русский , чтобы помочь русским людям читать английские слова без знания транскрипции. А вы помогаете буржуям которые во первых вас ненависят, а во вторых им русский на хер не нужен.

@nirvichara

Copy link
Copy Markdown

Более полезна фонетическая транкрипция а не один-в один

@ledovsky

Copy link
Copy Markdown
Author

Друзья, простите, я скопировал откуда-то этот код очень очень давно, когда было нужно)
Давайте поправлю ошибки, раз этот код находят и используют)

@ledovsky

Copy link
Copy Markdown
Author

Господа, не занимайтесь херней. Транслитерацию надо делать в обратном порядке - с латиницы на русский , чтобы помочь русским людям читать английские слова без знания транскрипции. А вы помогаете буржуям которые во первых вас ненависят, а во вторых им русский на хер не нужен.

камон =)

@ledovsky

Copy link
Copy Markdown
Author

For the author (or future users if the gist won't be changed) :

'я':'ja'
'Я': 'YA'

Choose either "j" or "y"

"ё" is "yo" or "jo" not "e"

"ч" is "ch" not "cz"

"щ" is "sch" or "shh" not "scz"

'Ы': 'y' - the case can be saved

Вроде бы все поправил =)

@sabovruslan

sabovruslan commented Dec 16, 2021

Copy link
Copy Markdown

https://www.kmu.gov.ua/npas/243262567
Є прийняті правила транслітерації, замінити символи я знайшов багато робочих способів, але щоб дотриматись всіх правил не вдається, а саме "ЗГ" та деякі букви по різному мають заміняютись залежно від позиції в слові..

@petrovkarmm

Copy link
Copy Markdown

Господа, не занимайтесь херней. Транслитерацию надо делать в обратном порядке - с латиницы на русский , чтобы помочь русским людям читать английские слова без знания транскрипции. А вы помогаете буржуям которые во первых вас ненависят, а во вторых им русский на хер не нужен.

Не согласен. Сам сейчас проект на django пишу, беру слаги из тайтла, по итогу джанговский слагофай не пропускат русские символы, приходится сторонние библиотеки искать, что перед сохранением тайтл для слага менял XD. Ситуации то разные бывают.

@ergobound

Copy link
Copy Markdown

Господа, не занимайтесь херней. Транслитерацию надо делать в обратном порядке - с латиницы на русский , чтобы помочь русским людям читать английские слова без знания транскрипции. А вы помогаете буржуям которые во первых вас ненависят, а во вторых им русский на хер не нужен.

сильно

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment