1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- from __future__ import annotations
- def add_uppercase_char(char_list: list[tuple[str, str]]) -> list[tuple[str, str]]:
- """ 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
|