summaryrefslogtreecommitdiffstats
path: root/third_party/python/python_slugify/slugify/special.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/python_slugify/slugify/special.py')
-rw-r--r--third_party/python/python_slugify/slugify/special.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/third_party/python/python_slugify/slugify/special.py b/third_party/python/python_slugify/slugify/special.py
new file mode 100644
index 0000000000..54eb85c70e
--- /dev/null
+++ b/third_party/python/python_slugify/slugify/special.py
@@ -0,0 +1,47 @@
+# -*- 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