48 lines
1.1 KiB
Python
48 lines
1.1 KiB
Python
|
# -*- coding: utf-8 -*-
|
|||
|
|
|||
|
|
|||
|
def add_uppercase_char(char_list):
|
|||
|
""" Given a replacement char list, this adds uppercase chars to the list """
|
|||
|
|
|||
|
for item in char_list:
|
|||
|
char, xlate = item
|
|||
|
upper_dict = char.upper(), xlate.capitalize()
|
|||
|
if upper_dict not in char_list and char != upper_dict[0]:
|
|||
|
char_list.insert(0, upper_dict)
|
|||
|
return char_list
|
|||
|
|
|||
|
|
|||
|
# Language specific pre translations
|
|||
|
# Source awesome-slugify
|
|||
|
|
|||
|
_CYRILLIC = [ # package defaults:
|
|||
|
(u'ё', u'e'), # io / yo
|
|||
|
(u'я', u'ya'), # ia
|
|||
|
(u'х', u'h'), # kh
|
|||
|
(u'у', u'y'), # u
|
|||
|
(u'щ', u'sch'), # sch
|
|||
|
(u'ю', u'u'), # iu / yu
|
|||
|
]
|
|||
|
CYRILLIC = add_uppercase_char(_CYRILLIC)
|
|||
|
|
|||
|
_GERMAN = [ # package defaults:
|
|||
|
(u'ä', u'ae'), # a
|
|||
|
(u'ö', u'oe'), # o
|
|||
|
(u'ü', u'ue'), # u
|
|||
|
]
|
|||
|
GERMAN = add_uppercase_char(_GERMAN)
|
|||
|
|
|||
|
_GREEK = [ # package defaults:
|
|||
|
(u'χ', u'ch'), # kh
|
|||
|
(u'Ξ', u'X'), # Ks
|
|||
|
(u'ϒ', u'Y'), # U
|
|||
|
(u'υ', u'y'), # u
|
|||
|
(u'ύ', u'y'),
|
|||
|
(u'ϋ', u'y'),
|
|||
|
(u'ΰ', u'y'),
|
|||
|
]
|
|||
|
GREEK = add_uppercase_char(_GREEK)
|
|||
|
|
|||
|
# Pre translations
|
|||
|
PRE_TRANSLATIONS = CYRILLIC + GERMAN + GREEK
|